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

Функция Vector Insert () в C++ Изучение

В 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++ program to implement 
// pointer to pointer
#include <bits/stdc++.h>
using namespace std;
 
// Driver code
int main()
{
  int variable = 169;
   
  // Pointer to store the address 
  // of variable
  int* pointer1;
 
  // double pointer to store the 
  // address of pointer1
  int** pointer2;
 
  // Storing address of variable 
  // in pointer1
  pointer1 = &variable;
 
  // Storing address of pointer1 
  // in pointer2
  pointer2 = &pointer1;
 
  // Displaying the value of variable 
  // with using both single and double 
  // pointers.
  cout << "Value of variable :- " << 
           variable << "\n";
  cout << "Value of variable using single pointer :- " << 
           *pointer1 << "\n";
  cout << "Value of variable using double pointer :- " << 
           **pointer2 << "\n";
  return 0;
}

Выход

Value of variable :- 169
Value of variable using single pointer :- 169
Value of variable using double pointer :- 169

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

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

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

С++

// C++ program to check the size 
// of a pointer to a pointer.
#include <bits/stdc++.h>
using namespace std;
 
// Driver code
int main()
{
  int val = 169;
  int* ptr = &val;
  int** double_ptr = &ptr;
 
  cout << " Size of normal Pointer: " << 
            sizeof(ptr) << "\n";
  cout << " Size of double Pointer: " << 
            sizeof(double_ptr) << "\n";
  return 0;
}

Выход

 Size of normal Pointer: 8
 Size of double Pointer: 8

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

Читайте также:  Как клонировать сайт с помощью Duplicator?
Оцените статью
bestprogrammer.ru
Добавить комментарий