[C] pre/post incrementation.
|
22-09-2014, 13h18
(Modification du message : 22-09-2014, 13h20 par ark.)
Message : #1
|
|
ark
Psyckomodo! Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
[C] pre/post incrementation.
Yop,
un petit article pour expliquer la pré et post incrémentation. Une incrémentation en C, c'est le fait d'augmenter la valeur d'une variable généralement d'une valeur de 1 (mais ce terme ne restreint pas a ça, on peut incrémenter de 2 ou 10 000, c'est pareil), a l'inverse, si on diminue la valeur d'une variable, on va dire qu'on la décrémente. On va donc voir comment faire une incrémentation en C. Pour cela, il existe plusieurs solutions. Code C :
int i = 0; On va donc s'attarder sur ces deux dernières instructions, qui sont un peu plus complexes, et n'ont pas toujours les mêmes effets.
Voici un exemple pour être plus clair : Code C :
Ce code affichera : Code BASH :
$> ./a.out Si on modifie le code précédent afin d'effectuer une post-incrementation a la place, ca nous donne ca: Code C :
Ce code affichera : Code BASH :
$> ./a.out Notez donc la différence importante entre ces deux opérateurs! l'un incrémente avant l’évaluation de l'expression, l'autre après ! Vous pouvez noter également que tout ceci est valable pour des décrémentation, il suffira de remplacer les ++ par des --. Juste une remarque avant de finir, dans le cadre d'une boucle for, vous pourrez utiliser indifféremment la pré-incrémentation de la post-incrémentation. Code C :
for (i = 0 ; i < 10 ; ++i) { Car les blocks sont évalues indépendamment des autres. Voila, si vous avez des questions, n’hésitez pas. ;) |
|
22-09-2014, 13h38
Message : #2
|
|
b0fh
Membre actif Messages : 210 Sujets : 17 Points: 309 Inscription : Jul 2012 |
RE: [C] pre/post incrementation.
Juste une petite remarque: dans les cas ou les deux sont acceptables, mieux vaut utiliser une pré-incrémentation (++i) qu'une post-incrémentation (i++). Dans de très rare cas, ça peut économiser une allocation ou un registre. Et l'effet peut être plus marqué en C++, où le post-incrément peut parfois créer une copie inutile d'un objet volumineux.
|
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)