En fait l'explication du "++" tiens au fait (historique uniquement concernant le javascript ? je sais pas) qu'en C on trouve la même syntaxe
"i++;" incrémente la variable i, tout simplement, comme "i--;" la décrémente
En fait ça a un sens (on pourrait très bien écrire "i += 1;" ça revient au même dans les faits) du fait que le C étant un langage compilé, il est donc transcodé en langage machine (assembleur, c'est kif kif on va dire pour entrer dans les subtilités de langage), et en assembleur, on peut incrémenter une valeur en mémoire de plusieurs façon également
mettons que notre variable, notre valeur en mémoire s'appelle AX, pour l'incrémenter on peut soit écrire en assembleur :
ADD AX, 1
Soit
INC AX
Qui va augmenter la valeur de 1 automatiquement sans qu'on ait besoin de le préciser, c'est implicite
"Oui mais alors, à quoi ça sert de faire la distinction puisque ça revient au même ?"
-> C'est une très bonne question, je vous remercie de me la poser
Tout simplement parceque en assembleur "INC AX" ça correspond à mettons 0x40 en langage machine (hexadécimal), donc 1 seul octet permet de dire au processeur "augmente la valeur de AX de 1"
Tandis que - toujours en assembleur - "ADD AX, 1" correspondra disons à 0x05, 0x01, 00 (le fameux "1" qu'on ajoute, on le retrouve sur le deuxieme octet) donc le processeur aura à traiter 3 octets pour arriver exactement au même résultat.
Bon, 3 octets au lieu d'un c'est pas énorme, d'autant que les processeurs actuels traitent des millions d'instructions à la seconde, mais justement, c'est petites instructions, si elles reviennent souvent, à force de perdre un peu de temps par ci, un peu de temps par là, on se retrouve avec un programme qui est globalement lent (dans une certaine mesure, c'est une caricature, c'etait valable surtout autrefois à l'époque du crétacé et des 486, puis est arrivé Pentium et là, ce fut le drame, bref...)
En résumé, quand vous employez "++" pour incrementer votre code, c'est le premier pas vers son optimisation (sur un plan rapidité d'exécution)
On peut également comprendre pourquoi on dit souvent que le C est un langage proche de la machine, typiquement parceque les instructions dans le code source en C on une influence directe sur le code machine et qu'on en a une maitrise assez fine si on sait utiliser C
Voilou
