Quelle est exactement la différence entre x++ x+1?
J'ai pensé à ce sujet dans les termes de l'incrémentation d'un pointeur, mais je suppose que, en général, maintenant, je ne sais pas la différence sémantique entre ces deux opérations/opérateurs. Par exemple, mon professeur a dit que si vous avez int a[10], vous ne pouvez pas dire a++ à point à l'élément suivant, mais je sais par expérience qu'un+1 ne fonctionne pas. Je lui ai demandé pourquoi et il m'a dit quelque chose comme "un++ est une action et un+1 est une expression". Que voulait-il dire par la c'est une "action"? Si quelqu'un pouvait m'en dire plus à ce sujet et la nature de la différence entre les deux opérations, je serais grandement apprécier. Merci.
x++
modifie x
. x+1
ne le fait pas.une comparaison entre
x++
et x += 1
(et x = x + 1
) aurait plus de sens.OriginalL'auteur syk435 | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
x++ et ++x
L'opérateur d'incrémentation
x++
va modifier et retourne une copie de l'ancienx
. Sur une note de côté le préfixe++x
va encore modifierx
mais renvoie la nouvellex
.En fait
x++
peut être vu comme une sorte de:tout
++x
sera plus comme:x + 1
La
x+1
opération il suffit de retourner la valeur de l'expression et pas modifierx
. Et il peut être vu comme:-1 pour le mélange des choses entre le C et le C++. Quelles sont les références en C, ce qui est
operator++
?vous êtes de droite. J'ai lu c++ dans les tags. C'est bizarre. Édité.
OriginalL'auteur Shoe
x++
est une action dans le sens qu'il changex
x+1
ne change pasx
OriginalL'auteur Doug Currie
a++ va se traduire par un=un+1 qui est une action (en raison de l'opération d'affectation)
un+1 est juste une expression qui se réfère à un+1 (soit dans le pointeur de termes ou en termes d'un nombre en fonction du type)
OriginalL'auteur user2187876
x++ est équivalent à x = x + 1. C'est une action qu'il est en train de changer la valeur de x.
OriginalL'auteur Ben313
x++
est un const expression qui modifie la valeur dex
(Il augmente le1
). Si vous faites référence àx++
, l'expression renvoie la valeur dex
avant c'est incrémenté.L'expression
++x
sera de retour la valeur dex
après c'est incrémenté.x + 1
cependant, est une expression qui représente la valeur dex + 1
. Il ne modifie pas la valeur dex
.OriginalL'auteur Mohamad Ali Baydoun
Chaque expression renvoie un résultat (à moins qu'il
void
).x + 1
retourne la valeur de x + 1.x++
retourne la valeur de x, et comme un effet secondaire de la valeur de x est incrémenté à un certain point, pas nécessairement immédiatement.Cela signifie que vous pouvez avoir:
x = x + 1;
mais ce qui est illégal:
x = x++;
OriginalL'auteur teppic