Regardons comment les pointeurs sont utilisés dans le langage de programmation C.
Nous allons traiter deux variables:
aptr
Nous allons également rencontrer deux caractères clés:
- where would return the address location of variable - where means follow the memory address stored in ptr and set that location to 8
Supposons que a
est situé à l’adresse 0x8130 en mémoire et ptr
à 0x8134; supposons également qu’il s’agit d’une machine 32 bits telle qu’un int soit 32 bits dans taille. Voici ce qui serait en mémoire après l’exécution de l’extrait de code suivant:
int a = 5;int *ptr = NULL;
Adresse | Contenu |
---|---|
0x8130 | 0x00000005 |
0x8134 | 0x00000000 |
(Le pointeur NULL affiché ici est 0x00000000.) En attribuant l’adresse de a
à ptr
:
ptr = &a;
renvoie les valeurs de mémoire suivantes:
Adresse | Contenu |
---|---|
0x8130 | 0x00000005 |
0x8134 | 0x00008130 |
Puis en déréférençant ptr
en codant:
*ptr = 8;
l’ordinateur prendra le contenu de ptr
(qui est 0x8130), « localisez » cette adresse et attribuez 8 à cet emplacement pour obtenir la mémoire suivante:
Adresse | Contenu |
---|---|
0x8130 | 0x00000008 |
0x8134 | 0x00008130 |
Manifestement, accéder à a
donnera la valeur 8 car l’instruction précédente a modifié le contenu de
au moyen du pointeur ptr
.