Nous avons vu que les objets manipulés dans les programmes sous forme de variables, qu'ils soient de type simple (int, double ...) ou composé (tableau, structure) correspondent à des emplacements réservés dans la mémoire de l'ordinateur.
La mémoire centrale des ordinateurs que nous utilisons (stations de travail, PC...) est découpée logiquement en octets (mots de 8 bits). Chacun de ces octets est numéroté, autrement dit, il possède une adresse unique, un nombre entier qui sert à l'identifier.
Chaque octet de mémoire peut stocker une donnée de type caractère
(char
). Pour d'autres types de données comme les entiers, plusieurs
octets consécutifs doivent être utilisés (les entiers
de type int
, dans notre environnement de programmation,
sont stockés sur quatre octets). L'adresse de la zone de
mémoire correspondant à un objet de type entier est par
convention l'adresse du premier octet, dans l'ordre des adresses
croissantes, de cette zone.
Pour manipuler les adresses, nous avons besoin d'un nouveau type de
données : le type pointeur. En fait, un pointeur est simplement
une adresse, donc un entier ; mais pour des raisons de sécurité,
on prend soin de distinguer pointeurs et entiers (un pointeur n'est donc
pas un int), ainsi que les
différents types de pointeurs entre eux. Ainsi, un pointeur de
flottant en double précision
(adresse d'un objet de type double
) et un pointeur de caractère
(adresse d'un objet de type char
) sont de types différents.
Voici, en C++, la définition du type ``pointeur de flottant'',
autrement dit, adresse d'un objet de type double
: