Bonsoir ,
J'ai un petit soucis :
La derniere fait que *px vaut 2 , or j'aurai dis 1 ...Pourquoi ?Code:
1
2
3
4 int x =1 int z, *px, *py; px= &x; *px *= 2;
*px *=2 , on a comme type un pointeur sur un pointeur ici ?
Version imprimable
Bonsoir ,
J'ai un petit soucis :
La derniere fait que *px vaut 2 , or j'aurai dis 1 ...Pourquoi ?Code:
1
2
3
4 int x =1 int z, *px, *py; px= &x; *px *= 2;
*px *=2 , on a comme type un pointeur sur un pointeur ici ?
En plus de la modification, * veut dire deux choses distinctes :
- Dans une déclaration, il dénote un pointeur sur un type int* p; : p est de type pointeur sur entier.
- Dans une expression, il indique que l'on accède à la valeur pointée : *p = 3; : Je déréférence le pointeur, afin d'accéder à la valeur pointée, et de la modifier pour qu'elle vaille 3.
Est-ce que ça clarifie la situation (si non, c'est peut-être que j'ai mal compris la question ;) )