Bonjour,
Je lisais hier soir et ce matin le chapitre 5 sur les pointeurs et les tableaux dans le K&R (j'ai la 2e édition en français, chez Dunod. Je citerai les pages dans la suite, si vous avez une édition différente, dommage...).
A la page 93, ils expliquent que (*p)++ incrémente le contenu du pointeur p et que les parenthèses sont obligatoires sous peine d'incrémenter le pointeur p. En effet, les opérateurs unaires s'évaluent de la droite vers la gauche.
Ensuite, à la page 104, ils disent que *p++ = val; met val sur la pile. J'en déduis que le contenu de p prend la valeur de val et que p est incrémenté.
Or, j'ai l'impression que les deux codes sont contradictoires. En suivant la règle du 1er code, j'aurais tendance à penser que le code 2 revient à :
- incrémenter le pointeur p (car l'opérateur unaire ++ est à droite et s'évalue en premier)
- le contenu de p ainsi décalé prend la valeur de val
Qu'est ce que j'ai mal compris ?![]()
Partager