जैसा कि हम जानते हैं, एक pointer-variable दूसरे variable के address को store करता है। इसमें एक pointer -variable जो पहले से ही किसी दूसरे साधारण variable के address को store करता है, दूसरा pointer-variable इस pointer -variable के address को store करता है।
कहने का मतलब है कि एक इसमें हम एक pointer -variable का address किसी दूसरे pointer variable में store/access करते हैं।
इसका syntax नीचे दिया गया है –
data type **pointer-variable;
Example
int **ptr;
How to access a pointer address in C++?
सबसे पहले, हम एक pointer -variable को declare करते हैं,
int *ptr1;
फिर एक pointer-to-pointer variable declare करते हैं –
int **ptr2;
इसके बाद pointer variable ptr1 को pointer-variable ptr2 में assign करते हैं-
ptr2 = &ptr1;
चलिए इसे नीचे दिए program की सहायता से समझते हैं।
access Pointer variable address using another pointer variable
Program में, x variable का address एक pointer variable ptr1 में store किया जाता है, जबकि इसpointer-variable ptr1 का address किसी अन्य pointer-variable ptr2 में store किया जाता है।
जब यह program execute होता है, तो ptr1 variable x का address print करेगा। इसके बाद, इस pointer ptr1 का address , एक अन्य pointer ptr2 द्वारा print होगा-
#include<iostream.h>
#include<conio.h>
void main()
{
int x=6;
int *ptr1,**ptr2;
ptr1 = &x;
ptr2 = &ptr1;
clrscr();
cout<<"Values are:\n";
cout<<"ptr1: "<<*ptr1<<" "<<**ptr2<<endl;
cout<<"\nAddress of:\n";
cout<<"*ptr2: "<<*ptr2<<endl;
cout<<"ptr1: "<<ptr1<<endl;
cout<<"ptr2: "<<ptr2;
getch();
}
OUTPUT
ptr1: 6 6
Address of:
*ptr2: 0x8f2bfff2
ptr1: 0x8f2bfff2
ptr2: 0x8f2bfff0
Explanation
जैसा कि आप देख सकते हैं *ptr2 और ptr1 दोनों का output एक जैसा ही है , ऐसा इसलिए है क्योंकि ptr1, variable x का address print कर रहा है। लेकिन *ptr2 ptr1 में store value प्रदर्शित कर रहा है जो कि variable x का address है।
अर्थात variable x का address *ptr2 के लिए value होगा जबकि ptr1 के लिए यह address होगा।
more about pointer