13 - Les pointeurs

Icône de l'outil pédagogique Introduction

On a vu jusqu'à présent comment accéder à une variable par adressage direct : on emploie le nom de la variable dans la partie du programme où celui‐ci est connu et autorisé, c'est‐à‐dire, pour une variable locale, dans la fonction qui a défini la variable.

Il existe une autre façon d'accéder à une variable quand l'adressage direct n'est pas possible : on emploie l'adresse de la variable au lieu de son nom. C'est l'adressage indirect, qu'on utilise en particulier pour manipuler la variable dans une autre fonction que celle où elle est définie.

En informatique, l'adressage indirect est réalisé au moyen d'un pointeur. Un pointeur contient l'adresse d'une variable ; on dit qu’il « pointe sur la variable ». Il permet ainsi d'y accéder par adressage indirect.

Les pointeurs sont indispensables dans les applications suivantes :

– pour permettre à une fonction de modifier la variable locale d'une autre fonction. C'est le passage en paramètre par adresse. Cela inclut les fonctions (répandues) de saisie et d'initialisation.

– pour toutes les fonctions qui doivent calculer deux résultats ou plus (rappelons qu’il est alors impossible d'utiliser return !).

– pour créer des données pendant l'exécution du programme. C'est l'allocation dynamique, qui complète les allocations «statiques » faites pendant les phases de compilation/édition de liens. Les données créées dynamiquement pendant l'exécution sont accédées au moyen d'un pointeur.