c - pointer to pointer
DESCRIPTION
Pointer to pointer in c programTRANSCRIPT
-
4/30/2015 CPointertoPointer
http://www.tutorialspoint.com/cgibin/printpage.cgi 1/2
http://www.tutorialspoint.com/cprogramming/c_pointer_to_pointer.htm Copyrighttutorialspoint.com
CPOINTERTOPOINTER
Apointertoapointerisaformofmultipleindirection,orachainofpointers.Normally,apointercontainstheaddressofavariable.Whenwedefineapointertoapointer,thefirstpointercontainstheaddressofthesecondpointer,whichpointstothelocationthatcontainstheactualvalueasshownbelow.
Avariablethatisapointertoapointermustbedeclaredassuch.Thisisdonebyplacinganadditionalasteriskinfrontofitsname.Forexample,followingisthedeclarationtodeclareapointertoapointeroftypeint:
int**var;
Whenatargetvalueisindirectlypointedtobyapointertoapointer,accessingthatvaluerequiresthattheasteriskoperatorbeappliedtwice,asisshownbelowintheexample:
#includeintmain(){intvar;int*ptr;int**pptr;
var=3000;
/*taketheaddressofvar*/ptr=&var;
/*taketheaddressofptrusingaddressofoperator&*/pptr=&ptr;
/*takethevalueusingpptr*/printf("Valueofvar=%d\n",var);printf("Valueavailableat*ptr=%d\n",*ptr);printf("Valueavailableat**pptr=%d\n",**pptr);
return0;}
Whentheabovecodeiscompiledandexecuted,itproducesthefollowingresult:
Valueofvar=3000
-
4/30/2015 CPointertoPointer
http://www.tutorialspoint.com/cgibin/printpage.cgi 2/2
Valueavailableat*ptr=3000Valueavailableat**pptr=3000