C'est la valeur qui va être retournée.Envoyé par Loralina
Un registre de travail interne, comme dans bien des fonctions, pour être passée à la variable liée à l'expression.Envoyé par Loralina
C'est ce qui se passe en interne lors de l'évaluation de l'expression, on affecte à b le résultat de l'expression a++.Quand on fait b=(a++)+1, l'utilisation correspond à l'évaluation progressive de l'expression, c'est l'expression (j'ajoute (13h11) : je devrais plutôt dire la variable interne associée ou du moins l'évaluation de l'expression) qui reçoit oldValue, on n'est pas encore à l'étape de l'affectation à b.
Maintenant, si on a juste b=a++, c'est pareil comme le montre le script que je viens de mettre, l'expression reçoit oldValue, a est incrémentée, et enfin l'affectation de l'expression à b est faite.
Que fait l'expression a++ ?
- Rt(registre de travail) <- valeur de a
- a <- a +1
- return Rt
c'est comme si l'on écrivait b = a; a = a +1; ou mieux rt = a; a = a +1; b = rt;
Techniquement OUI l'incrémentation se fait avant le retour, sinon cela serait non réalisable, mais pratiquement on ne peut pas utiliser la valeur incrémentée avant l'affectation du résultat de l'expression.Oui, mais je trouve ça dommage car au final presque tout le monde a une fausse idée de l'ordre des opérations.
Oui mais la post incrémentation sur le return n'est pas exploitée.C'est le même principe pour les comparaisons et le return dans une fonction (le retour de l'expression finale s'effectue après toutes les post incrémentations).







Répondre avec citation
Partager