Pré et post incrémentation / décrémentation
Les opérateurs de pré et post incrémentation/décrémentation sont des opérateurs unaires qui s'appliquent à l'identificateur de variable auquel ils sont accolés.
L'incrémentation ++ consiste à augmenter la valeur de la variable de 1, et la décrémentation -- à la diminuer de 1.
int x = 5;
// déclaration d'un entier x et initialisation avec la valeur 5
x++;
// opérateur unaire de post incrémentation
// x vaut 6 ici
++x;
// opérateur unaire de pre-incrémentation
// x vaut 7 ici
On pourrait croire que l'expression x++ est identique à ++x, soit l'écriture x = x +1.
Cela n'est pas tout à fait exact.
int x = 7, y = 3;
y = y + x++;
// x vaut 8 ici et y vaut 10 c-a-d 7+3
x = ++y + 50;
// x vaut 61, c'est-à-dire 11+50 et y vaut 11
Explication : si l'on utilise la post-incrémentation dans une expression, alors la valeur de la variable est d'abord utilisée pour effectuer le calcul de l'expression puis elle est incrémentée d'une unité ensuite.
Si l'on utilise la pré-incrémentation dans une expression alors la valeur de la variable est d'abord incrémentée d'une unité avant d'être utilisée ensuite dans le calcul de l'expression.
L'exemple ci-dessus est équivalent à :
int x = 7, y = 3;
y = y + x;
x = x + 1;
// x vaut 8 ici et y vaut 10 c-a-d 7+3
y = y + 1
x = y + 50;
// x vaut 61, c-a-d 11+50 et y vaut 11
Cela fonctionne de manière identique pour les pré et post décrémentations