C Pointer to Pointer

06-11-17 Course- C

In C pointer to pointer concept, a pointer refers to the address of another pointer.

In C language, an pointer can point to the address of another pointer, which indicates the value of the value. Let's understand with the diagram below:

POINTER TO POINTER

Let's see the syntax of pointer to pointer.


int **p2;  

C pointer to pointer example

Let's see an example where one pointer points to the address of another pointer.

pointer example

As you can see in the above figure, p2 contains the address of p (fff2) and p contains the address of number variable (fff4).


#include <stdio.h>        
#include <conio.h>      
void main(){        
int number=50;    
int *p;//pointer to int  
int **p2;//pointer to pointer      
clrscr();    
p=&number;//stores the address of number variable    
p2=&p;  
        
printf("Address of number variable is %x \n",&number);    
printf("Address of p variable is %x \n",p);    
printf("Value of *p variable is %d \n",*p);    
printf("Address of p2 variable is %x \n",p2);    
printf("Value of **p2 variable is %d \n",**p);    
    
getch();        
}

Output


Address of number variable is fff4
Address of p variable is fff4
Value of *p variable is 50
Address of p2 variable is fff2
Value of **p variable is 50