C++ Pointeur vers pointeur (indirection multiple)

Pointeurs C++

Un pointeur vers un pointeur est une forme d'indirection multiple, ou une chaîne de pointeurs.

Un pointeur vers un pointeur stocke l'adresse d'un pointeur à l'intérieur d'un autre pointeur.

Habituellement, 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, et le second pointeur pointe vers l'emplacement qui contient la valeur réelle.

C++ 中指向指针的指针

Une variable pointeur vers pointeur doit être déclarée comme suit, c'est-à-dire en plaçant deux astérisques avant le nom de la variable. Par exemple, ce qui suit déclare un pointeur vers un pointeur de type int :

int **var;

Lorsqu'une valeur cible est pointée indirectement par un pointeur vers un autre pointeur, l'accès à cette valeur nécessite l'utilisation de deux opérateurs astérisque, comme le montre l'exemple suivant :

Exemple

#include <iostream> using namespace std; int main () { int var; int *ptr; int **pptr; var = 3000; // obtenir l'adresse de var ptr = &var; // obtenir l'adresse de ptr en utilisant l'opérateur & pptr = &ptr; // utiliser pptr pour obtenir la valeur cout << "var value :" << var << endl; cout << "*ptr value:" << *ptr << endl; cout << "**pptr value:" << **pptr << endl; return 0; }

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

var 值为 :3000
*ptr 值为:3000
**pptr 值为:3000

Pointeurs C++

autres extensions