Указатель С++ на указатель (двойной указатель)

Опубликовано: 19 Февраля, 2023

В C++ указатель — это переменная, которая используется для хранения адресов памяти других переменных. Это переменная, которая указывает на тип данных (например, int или string) того же типа и создается с помощью оператора * .

Синтаксис указателя в C++:

data_type_of_pointer *name_of_variable = & normal_variable;

Что такое указатель на указатель или двойной указатель в C++?

Теперь мы уже знаем, что указатель хранит адрес памяти других переменных. Итак, когда мы определяем указатель на указатель, первый указатель используется для хранения адреса переменных, а второй указатель хранит адрес первого указателя. Именно по этой причине он известен как двойной указатель или указатель на указатель .

На приведенной ниже диаграмме объясняется концепция двойных указателей :

На приведенной выше диаграмме показано представление памяти указателя на указатель или двойного указателя, мы можем легко понять, что адрес переменной (т. е. адрес 1) хранится в указателе 1 , а адрес указателя 1 (т. е. адрес 2) хранится в указателе 2 . Это известно как двойные указатели или указатель на указатель .

Как объявить указатель на указатель в C++?

Объявление указателя на указатель аналогично объявлению указателя в C++. Разница в том, что мы должны использовать дополнительный оператор * перед именем указателя в C++.

Синтаксис указателя на указатель (двойной указатель) в С++:

data_type_of_pointer **name_of_variable = & normal_pointer_variable;

Пример:

int val = 169;

int *ptr = &val; // storing address of val to pointer ptr.

int **double_ptr = &ptr; // pointer to a pointer declared which is pointing to an integer.

На приведенной ниже диаграмме объясняется концепция двойных указателей:

На приведенной выше диаграмме показано представление в памяти указателя на указатель. Первый указатель ptr1 хранит адрес переменной, а второй указатель ptr2 хранит адрес первого указателя.

Ниже приведена программа C++ для реализации Pointer to Pointer :

Каков будет размер указателя на указатель в С++?

В языке программирования C++ двойной указатель ведет себя аналогично обычному указателю. Таким образом, размер переменной двойного указателя и размер переменной обычного указателя всегда равны.

Ниже приведена программа на C++ для проверки размера двойного указателя:

Примечание. Вывод приведенного выше кода также зависит от типа используемой машины. Размер указателя не фиксирован в языке программирования C++ и полностью зависит от других факторов, таких как архитектура ЦП и используемая ОС. Обычно для 64-битной операционной системы назначается размер памяти 8 байт, а для 32-битной операционной системы размер памяти 4 байта.