Vous êtes sur la page 1sur 3

Définition

Pour comprendre ce que sont les pointeurs, vous devez avoir une idée de la façon dont
votre ordinateur stocke les informations en mémoire.

La mémoire de votre
ordinateur
La mémoire vive de votre PC est constituée de millions d’emplacements mémoire
rangés de façon séquentielle. Chaque emplacement a une adresse unique, comprise
entre 0 et une valeur maximale qui dépend de la quantité de mémoire installée sur votre
machine.
Quand votre ordinateur fonctionne, une partie de sa mémoire vive est occupée par le
système d’exploitation. Si vous lancez un programme, le code (les instructions en langage
machine) et les données qu’il utilise occuperont en partie cette mémoire. Nous allons
étudier de quelle façon votre programme occupera cette mémoire.
Quand un programme déclare une variable, le compilateur réserve un emplacement
mémoire avec une adresse unique pour stocker cette variable. Il associe l’adresse au nom
de la variable. Quand le programme utilise le nom de la variable, il accède automatique-
ment à l’emplacement mémoire correspondant. Ce mécanisme est transparent pour l’utili-
sateur du programme, qui utilise le nom de la variable sans se soucier de l’endroit où
l’ordinateur l’a stockée. Cela est illustré par le schéma de la Figure 9.1.
Figure 9.1 1000 1001 1002 1003 1004 1005
Une variable de programme
100
a une adresse de mémoire
spécifique.
rate

Une variable appelée rate est déclarée et initialisée à 100. Le compilateur a réservé un
emplacement mémoire à l’adresse 1004, qu’il associe donc au nom de la variable.

Création d’un pointeur


Vous pouvez remarquer que l’adresse de la variable rate est un nombre, et qu’elle peut
donc être utilisée comme n’importe quel autre nombre en langage C. Si vous connaissez
l’adresse d’une variable, vous pouvez créer une autre variable pour y stocker l’adresse de
la première. Dans notre exemple, la première étape consiste à déclarer la variable dans
laquelle on stockera l’adresse de rate. Nous allons l’appeler p rate. Le schéma suivant
montre qu’un emplacement a bien été réservé pour p rate, mais la valeur qui y est
stockée est inconnue.
Figure 9.2 1000 1001 1002 1003 1004 1005
Un emplacement a été
? 100
alloué à la variable p_rate.
p_rate rate

L’étape suivante consiste à stocker l’adresse de rate dans la variable p rate. Celle-ci
représente maintenant l’emplacement mémoire de la variable rate : en langage C, p
rate pointe sur rate, ou p rate est un pointeur vers rate.

Figure 9.3 1000 1001 1002 1003 1004 1005


La variable p_rate contient
l’adresse de la variable 1004 100
rate, elle est également
un pointeur vers rate. p_rate rate
En résumé, un pointeur est une variable qui contient l’adresse d’une autre variable. Étudions
maintenant l’utilisation de ces pointeurs dans un programme C.

Vous aimerez peut-être aussi