int
main (void) { int i = 1; int j = 3; int* p1 = &i; int** p2 ; char s[19] = "langage C"; char* ps = s+1; char* ps2; char c; char c1; ps++; s++; *(&i +1) = 4; ps = *(s+1); ps2 = s + 4; c = *(ps2 + 1); p1++; *p1 = 5; c1 = **(ps2); p2 = &p1; **p2 = 6; return(0); } |
adresse de i: 3000 adresse de j: 3002 adresse de p1: 3004 valeur de p1: 3000 adresse de p2: 3008 adresse de s: 3012 adresse de ps: 3031 valeur de ps: 3013 adresse de ps2: 3035 adresse de c: 3039 adresse de c1: 3040 valeur de ps: 3014 valeur de s: erreur s n'est pas un vrai pointeur juste une adresse zone affectée?: 3002 (équivalent à j=4) valeur de ps: erreur ps est un pointeur et *(s + 1) est un entier valeur de ps2: 3016 valeur de c: g valeur de p1: 3002 zone affectée?: 3002 (équivalent à j=5) valeur de c1: erreur ps2 n'est pas un pointeur de pointeur valeur de p2: 3004 zone affectée?: 3002 (équivalent à j=6) |