Указатель С++ на указатель (двойной указатель)
В 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 байта.