opérateur ++ incrémentations
opérateur -- décrémentation
Syntaxe:
op ++ (post-incrémentation)
++ op (pré-incrémentation)
op -- (post-décrémentation)
-- op (pré-décrémentation)
Description:
Le seul opérande est d'un type scalaire, numérique ou pointeur, et doit indiquer une zone mémoire modifiable (appelée lvalue).
Il faut être attentif à la modification de l'opérande et à la valeur fournie par l'expression.
Post-incrémentation:
Dans le cas de l'opérateur d'incrémentation postfixé, la valeur de l'expression est celle de op avant incrémentation. Une fois que l'expression est évaluée, l'opérande op est augmenté de 1.
Pré-incrémentation:
Dans le cas de l'opérateur d'incrémentation préfixé, l'opérande est incrémenté de 1, puis l'expression est évaluée à la valeur de l'opérande incrémenté.
Les types pointeurs suivent les règles d'arithmétique appliquables aux pointeurs.
Décrémentations ( - - )
L'opérateur de décrémentation fonctionne selon les mêmes règles que celui d'incrémentation en dehors du fait que l'opérande est décrémenté de 1 après ou avant évaluation de l'expression.
Attention: il ne faut pas faire figurer une variable et une expression d'incrémentation ou décrémentation dans une même liste d'arguments d'appel d'un sous programme, car les évaluations des arguments peuvent être différentes suivant les compilateurs.
Soit par exemple:
ii=6; sp( ii, ii--); a) envisageons l'argument de gauche évalué: il vaut 6 l'argument de droite évalué: il vaut 6, et ii passe à 5 l'appel correspond à sp( 6, 6);
b) envisageons l'argument de droite évalué: il vaut 6, et ii passe à 5 l'argument de gauche évalué: il vaut 5 l'appel correspond à sp( 5, 6);
Voir aussi
Exemple:
#include
int main(void) {
int ii=3, jj=8, nn;
nn=ii;
printf( "ii:%d valeur de l'expression ++ii : %d", nn, ++ii);
printf(" et ensuite ii:%d\n", ii);
nn=jj;
printf( "jj:%d valeur de l'expression jj++ : %d", nn, jj++);
printf(" et ensuite jj:%d\n", jj);
return 0;
}