C'est la valeur qui va être retournée.Citation:
Envoyé par Loralina
Un registre de travail interne, comme dans bien des fonctions, pour être passée à la variable liée à l'expression.Citation:
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++.Citation:
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.Citation:
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.Citation:
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).