C Pointeur de pointeur

Pointeurs en C

Un pointeur de pointeur est une forme d'indirection multiple, ou une chaîne de pointeurs. Normalement, un pointeur contient l'adresse d'une variable. Lorsque nous définissons un pointeur de 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 de pointeur vers un pointeur doit être déclarée comme suit, en plaçant deux astérisques avant le nom de la variable. Par exemple, ce qui suit déclare un pointeur vers un pointeur sur un 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 <stdio.h> int main () { int V; int *Pt1; int **Pt2; V = 100; /*Obtenir l'adresse de V*/ Pt1 = &V; /*Utiliser l'opérateur & pour obtenir l'adresse de Pt1*/ Pt2 = &Pt1; /*Utiliser pptr pour obtenir la valeur*/ printf("var = %d\n", V ); printf("Pt1 = %p\n", Pt1 ); printf("*Pt1 = %d\n", *Pt1 ); printf("Pt2 = %p\n", Pt2 ); printf("**Pt2 = %d\n", **Pt2); return 0; }

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

var = 100
Pt1 = 0x7ffee2d5e8d8
*Pt1 = 100
Pt2 = 0x7ffee2d5e8d0
**Pt2 = 100

Pointeurs en C

autres extensions