C Указатель на указатель

Указатели в C

Указатель на указатель — это форма многократного перенаправления, или цепочка указателей. Обычно указатель содержит адрес переменной. Когда мы определяем указатель на указатель, первый указатель содержит адрес второго указателя, а второй указатель указывает на местоположение, содержащее фактическое значение.

C 中指向指针的指针

Переменная-указатель на указатель должна быть объявлена следующим образом: перед именем переменной ставятся две звёздочки. Например, следующая запись объявляет указатель на указатель на int:

int **var;

Когда целевое значение косвенно адресуется указателем на другой указатель, для доступа к этому значению требуется использовать два оператора-звёздочки, как показано в следующем примере:

Пример

#include <stdio.h> int main () { int V; int *Pt1; int **Pt2; V = 100; /*Получите адрес V*/ Pt1 = &V; /*Используйте оператор & для получения адреса Pt1*/ Pt2 = &Pt1; /*Используйте pptr для получения значения*/ 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; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

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

Указатели в C

Другие расширения