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 ellemê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 êtesvous 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
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 ellemê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 êtesvous 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
