Programmation en C++ – Les pointeurs de pointeurs
Un pointeur vers un pointeur est une forme d’indirection multiple. Normalement, un pointeur contient l’adresse d’une variable. Lorsque nous définissons un pointeur vers un pointeur, le premier pointeur contient l’adresse du second pointeur, qui pointe vers l’emplacement qui contient la valeur comme illustré ci-dessous.
Une variable qui est un pointeur vers un pointeur doit être déclarée en plaçant une étoile supplémentaire devant son nom. Par exemple, pour déclarer un pointeur vers un pointeur de type int:
int **v;
Lorsqu’une valeur cible est indiquée indirectement par un pointeur vers un pointeur, l’accès à cette valeur requiert que l’opérateur étoile soit appliqué deux fois, comme indiqué ci-dessous dans l’exemple:
#include <iostream> using namespace std; int main () { int v; int *p; int **pp; v = 6987; // prendre l'adresse de v p= &v; // prend l'adresse de p en utilisant l'opérateur & pp = &p; // obtenir la valeur en utilisant pp cout << "La valeur de v :" << v << endl; cout << "La valeur disponible à * p :" << *p << endl; cout << "La valeur disponible à ** pp :" << **pp << endl; return 0; }
La sortie :
La valeur de v :6987 La valeur disponible à * p :6987 La valeur disponible à ** pp :6987