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