As we know, a pointer variable stores the address of another variable. In this, a pointer variable which stores the address of the other variables than before, another pointer-variable store the address of this pointer-variable.
There is syntax below
data type **pointer-variable;
Example
int **ptr;
How to access a pointer address in C++?
First of all, we declare a pointer-variable,
int *ptr1;
then declare a pointer-to-pointer variable and,
int **ptr2;
then assign the pointer-variable ptr1 to the pointer-variable ptr2, such as
ptr2 = &ptr1;
Let’s understand this with the help of a program
Pointer to Pointer Program in C++
In the program, the address of x variable is stored in one pointer-variable ptr1 while the address of this pointer-variable ptr1, is stored in another pointer variable ptr2. When this program executes, pointer-variable ptr1 will print the address of variable x. After this, the address of this pointer-variable ptr1, will print by another pointer variable ptr2.
#include<iostream>
using namespace std;
int main()
{
int x=6;
int *ptr1,**ptr2;
ptr1 = &x;
ptr2 = &ptr1;
cout<<"Values are:\n";
cout<<"ptr1: "<<*ptr1<<" "<<**ptr2<<endl;
cout<<"\nAddress of:\n";
cout<<"*ptr2: "<<*ptr2<<endl;
cout<<"ptr1: "<<ptr1<<endl;
cout<<"ptr2: "<<ptr2;
return 0;
}
OUTPUT
ptr1: 6 6
Address of:
*ptr2: 0x8f2bfff2
ptr1: 0x8f2bfff2
ptr2: 0x8f2bfff0
Explanation
As you can see *ptr2 and ptr1 are displaying the same address in output This is because pointer variable ptr1 is printing the address of variable x. But *ptr2 is displaying store data in pointer variable ptr1 which is the address of variable x.
more about pointer
Previous- Pointer in C++ with example
Next- Memory allocation in C++