C указатель на указатель
Указатель является указателем на многоступенчатой форме косвенной адресации в, или является указателем цепи. Как правило, указатель содержит адрес переменной. Когда мы определяем указатель на указатель, первый указатель содержит адрес второго указателя, второй указатель содержит местоположение фактического значения.
Указатель на переменную-указатель должен быть объявлен следующим образом, а именно размещение две звездочки перед именем переменной. Например, следующий объявляет указатель на INT стрелочных указателей:
int **var;
Когда цель является указателем на другой указатель косвенно указывает на доступ к этому значение, требует использования оператора двумя звездочками, как это показано в следующих примерах:
#include <stdio.h> int main () { int var; int *ptr; int **pptr; var = 3000; /* 获取 var 的地址 */ ptr = &var; /* 使用运算符 & 获取 ptr 的地址 */ pptr = &ptr; /* 使用 pptr 获取值 */ printf("Value of var = %d\n", var ); printf("Value available at *ptr = %d\n", *ptr ); printf("Value available at **pptr = %d\n", **pptr); return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Value of var = 3000 Value available at *ptr = 3000 Value available at **pptr = 3000