pointeurs. 
Un pointeur est une variable qui contient l’adresse d’une autre variable. 
Le  pointeur  pointe  sur  une  autre  variable  dont  il  contient  l’adresse  mémoire,  cette  dernière  étant  dite  variable 
pointée. Si vous affichez le contenu d’un pointeur, vous obtenez une adresse qui est celle de la variable pointée, 
tandis que si vous affichez le contenu de la variable pointée, vous obtenez la valeur associée à cette dernière. 
Un pointeur est une variable. De ce fait, elle doit être déclarée, dispose elle­même de sa propre adresse en mémoire, 
et se voit définir un type. Le type d’un pointeur ne décrit pas ce qu’il contient (c’est une adresse, donc en principe 
d’une longueur de 32 ou 64 bits selon les architectures) mais le type de la variable qu’il pointe. Un pointeur sur une 
variable de type long devrait donc être déclaré avec un type long. 
Le pointeur et la variable pointée en mémoire 
b. Le C roi des pointeurs 
Peut­être êtes­vous  perdu  dans  ces  définitions  et  explications.  L’exemple  suivant  en  C  devrait  suffisamment  vous 
éclairer  pour  la  suite.  Supposez  que  vous  voulez  placer  dans  un  pointeur  l’adresse  de  la  variable  i  de  l’exemple 
précédent. Pour déclarer un pointeur en C, il suffit de lui rajouter une étoile "*" avant son nom. Chaque ligne est 
commentée  pour  vous  aider.  L’objectif  est  de  faire  pointer  un  pointeur  p_i  sur  l’adresse  de  l’entier  i.  Pour  ça  le 
pointeur recevra cette adresse à l’aide du signe "&" devant i, car comme vu auparavant, ce signe permet d’accéder à 
l’adresse d’une variable. 
long i=123456; /* Un entier long contenant 123456 */
long *p_i; /* Un pointeur sur un entier long */
/* Le pointeur p_i reçoit l’adresse de i */
p_i=&i;
printf("%d à l’adresse %#xd, taille de %d octets\n",i,&i,sizeof(i));
printf("Le pointeur p_i pointe sur l’adresse %#xd\n",p_i);
À l’exécution sur la machine de l’auteur, on obtient ceci : 
123456 à l’adresse 0xbfa95cbcd, taille de 4 octets
Le pointeur p_i pointe sur l’adresse 0xbfa95cbcd
Notez que l’adresse de la variable i correspond maintenant exactement au contenu du pointeur p_i. Le pointeur p_i 
pointe sur la variable i dont il contient l’adresse. 
- 3 -
© ENI Editions - All rigths reserved - Jonifar lina
165
Précédent

- 165/220

Suivant