Pointeurs, adresses: exercices(2)
Dans le programme suivant i est à l'adresse 3000 (base 10) et toutes les variables sont consécutives en mémoire:
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:
adresse de j: 

adresse de p1:               valeur de p1:
adresse de p2:
adresse de s:
adresse de ps:                 valeur de ps:
adresse de ps2:
adresse de c:
adresse de c1:
valeur de ps:
valeur de s:
zone affectée?:
valeur de ps:
valeur de ps2:
valeur de c:
valeur de p1:
zone affectée?:
valeur de c1:
valeur de p2:
zone affectée?:

suivant                 plan