Re: [gull] Subtilité de C n° 5 : Tableaux et pointeurs, les fossiles

Marc Mongenet marc at mongenet.ch
Mon May 5 06:24:08 CEST 2008


2008/5/1 Daniel Cordey <dc at mjt.ch>:
> Oui, il est vrait que les [] sont purement informative... leur presence
> devrait nous indiquer que le tableau a une taille fixe, mais comme aucun
> autre mechanisme du langage ne se preoccupe de cette notation, elle ne sert
> pas a grand chose... Ceci mis a part, comme il est possible d'ecrire :
>
> *p++++ = 1;

C'est équivalent à ((*((p++)++)) = 1);
Mais ça ne compile pas car l'opérande de l'opérateur ++ doit être une
lvalue et son résultat n'est pas une lvalue (i++++; ne compile pas non
plus pour cette raison).

On peut en revanche compiler cela (sans le = 1) :
(*p++)++; /* incrémente p et l'objet initialement pointé par p */
ou bien cela :
++*p++; /* incrémente p et l'objet initialement pointé par p */

Marc Mongenet



More information about the gull mailing list