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

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *