📜  pointeur de pointeur en language - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:33:43.744000             🧑  作者: Mango

Pointeur de Pointeur en Language-C

Le Pointeur de Pointeur est un concept important en Language-C. C'est une technique puissante qui permet de travailler avec des adresses au lieu de travailler avec les valeurs directement.

Qu'est-ce que un Pointeur de Pointeur en Language-C?

Un Pointeur de Pointeur est une variable qui stocke l'adresse d'une autre variable qui elle-même est une adresse. Il permet d'accéder à une variable ou une valeur qui est à l'intérieur d'une autre variable qui elle-même est également une adresse.

Un exemple simple pour comprendre le Pointeur de Pointeur est comme suit:

int a = 7;
int *p1 = &a;
int **p2 = &p1;

Dans cet exemple, nous avons déclaré une variable a et deux pointeurs p1 et p2. p1 pointe sur la variable a et p2 pointe sur le pointeur p1.

Voici un diagramme pour mieux visualiser la relation entre ces variables et pointeurs:

Comment utiliser un Pointeur de Pointeur en Language-C

Pour utiliser un Pointeur de Pointeur en Language-C, nous avons besoin de trois étapes:

  1. Déclarer une variable ou une structure que nous allons pointer avec le Pointeur de Pointeur.
  2. Déclarer un Pointeur qui pointera sur la variable ou la structure déclarée à l'étape 1.
  3. Déclarer un Pointeur de Pointeur qui pointera sur le pointeur déclaré à l'étape 2.
struct octet{
    char letter;
    struct octet *next;
};

struct octet a, b, c;

a.letter = 'A';
b.letter = 'B';
c.letter = 'C';

a.next = &b;
b.next = &c;
c.next = NULL;

struct octet **pptr = &a.next;

Dans cet exemple, nous avons déclaré une structure octet qui contient une lettre et un Pointeur vers une autre structure octet. Nous avons également déclaré trois variables a, b, et c de type octet et les avons initialisées avec les lettres 'A', 'B', et 'C'. a pointe sur b, b pointe sur c et c pointe sur NULL.

Ensuite, nous avons déclaré un Pointeur de Pointeur pptr et initialisé avec l'adresse de a.next.

Nous pouvons maintenant utiliser pptr pour accéder à la structure b.

printf("%c\n", (*pptr)->letter);
pptr = &((*pptr)->next);
printf("%c\n", (*pptr)->letter);
pptr = &((*pptr)->next);
printf("%c\n", (*pptr)->letter);

Dans cet exemple, nous avons utilisé (*pptr)->letter pour accéder à la lettre 'B' dans la structure b. Ensuite, nous avons utilisé pptr = &((*pptr)->next) pour déplacer pptr vers la structure c et ainsi de suite.

Conclusion

Le Pointeur de Pointeur est une technique qui peut être très utile dans de nombreuses situations en Language-C. Il permet de travailler avec des valeurs qui elles-mêmes sont des adresses.

Rappelez-vous qu'il est important de bien comprendre ce que vous faites lorsque vous utilisez des Pointeurs de Pointeur car cela peut facilement devenir complexe. Cependant, il est également très puissant et peut simplifier votre code dans de nombreux cas.