Compteur de boucle en c++: i++ ou ++i
Résolu
igor
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
bj,
concretement quelle est la difference entre ces deux notations de compteur?
Y a t-il un cas ou la boucle debute son iteration a i et l'autre a i+1?
meric
concretement quelle est la difference entre ces deux notations de compteur?
Y a t-il un cas ou la boucle debute son iteration a i et l'autre a i+1?
meric
8 réponses
-
int i = 1; printf("%d", i++);
affichera 1, car i sera incrémenté après avoir donné sa valeur.int i = 1; printf("%d", ++i);
affichera 2, car i sera incrémenté avant d'avoir donné sa valeur.-
ok pour cet exemple, mais dans le cas d'une boucle...
est-ce qu'elle commence des la verification de la condition, ou bien est-ce qu'elle passe par l'incrementeur.
on m'a raconte les deux versions...
mettons
for i=0, i<nbval, i++
ce cas ira t-il de 0 a nbval -1
et i=0, i<nbval, ++i
et ceului ci de 1 a nbval
meric- Les deux solutions donneront le même résultat, puisque l'intruction dite de "pré-incrémentation" ou "post-incrémentaion" sera entièrement exécutée avant l'exécution du test.
La différence entre les deux modes n'est sensible que dans le cas d'une affectation ( x = i++ différent de x = ++i ), ou d'un adressage ( tab[i++] = x différent de tab[++i]).
-
-
Par habitude j'utilise ++i, plutôt que i++. Pour les types natifs, cela a peu d'importance mais pour les itérateurs cela est préférable.
Plus d'information ici :
https://forums.codeguru.com/showthread.php?231052-C-Operator-Why-should-I-use-i-instead-of-i -
-
Effectivement, i++ correspond à une post incrémentation alors que ++i correspond à une pré-incrémentation.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
La pré-incrémentation sur les types non natifs (++variable) est souvent plus optimisée, bien que de moins en moins vraie de par la performance des compilateurs.
i++ renvoie la valeur i
++i renvoie la valeur i+1
Cdlt, -
-
je suit une etudiente en lycée libre à sousse ,niveau 3ème année informatique et vraiment j'ai trais triste par ce que je ne pas perfect à la programation et pour succè l'année prochaine .
Et je ne connais pas plus le français.et j'espoire conseil moi
Et merci pour tout le monde....... -
Bonjour,
moi j'ai un petit soucis avec cet function.
for ($i=01;$i<26;$i++)
J'aimerais que ça m'incrémente : 01, 02, 03 au lieu de 1, 2, 3
car j'ai un soucis d'affichage lorsque je trie par numéro.
ça me fait 1, 10, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9 etc...
Quelqu'un aurait une solution pour moi ?
cordialement et merci d'avance !!!