next up previous contents
Next: Pointeurs et structures Up: Les pointeurs Previous: Libération de mémoire -

Pointeurs et tableaux

 

Les noms de variables de type tableau ont un statut particulier en C++ : ils représentent l'adresse du premier élément du tableau, et ce sans qu'il soit besoin d'avoir recours à l'opérateur & .

Remarque : on peut déduire de ce qui précède que les expressions Mot (dans l'exemple ci-dessous) et &(Mot[0]) sont équivalentes.

Il est donc possible d'utiliser le nom d'une variable de type tableau exactement comme une constante de type pointeur, comme le montre l'exemple suivant :

ex772

Il est important de préciser que l'incrémentation ou la décrémentation d'une variable de type pointeur (P++, P=P-2, etc) n'agit pas sur le pointeur en qualité de nombre entier (une adresse est en effet, somme toute, un nombre entier), mais bien en sa qualité d'adresse d'un objet possédant une taille précisée par son type.

Par exemple, incrémenter d'une unité une variable de type pointeur de flottant conduit à rajouter à l'adresse contenue dans la variable le nombre d'octets composant un flottant (huit pour le type double dans notre environnement). Cette opération peut donc être vue logiquement comme le ``passage au flottant suivant''.

Note: dans l'exemple précédent, le paramètre Mot ne doit pas, logiquement, être passé par référence, car il représente l'adresse du premier élément du tableau ; or cette adresse ne doit pas être modifiée par la fonction.



Michel COUPRIE
Thu Sep 12 14:57:14 METDST 1996