C++ Указатель на указатель (множественное косвенное обращение)

Указатели в C++

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

Указатель на указатель хранит адрес указателя внутри другого указателя.

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

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 << "var value :" << var << endl; cout << "*ptr value:" << *ptr << endl; cout << "**pptr value:" << **pptr << endl; return 0; }

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

var 值为 :3000
*ptr 值为:3000
**pptr 值为:3000

Указатели в C++

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