C Programming Code Examples C > Pointers Code Examples Pointer to Pointer (Double Pointer) Pointer to Pointer (Double Pointer) We already know that a pointer holds the address of another variable of same type. When a pointer holds the address of another pointer then such type of pointer is known as pointer-to-pointer or double pointer. In this guide, we will learn what is a double pointer, how to declare them and how to use them in C programming. To understand this concept, you should know the basics of pointers. #include <stdio.h> int main() { int num=123; //A normal pointer pointer2 int *pointer2; //This pointer pointer2 is a double pointer int **pointer1; /* Assigning the address of variable num to the * pointer pointer2 */ pointer2 = # /* Assigning the address of pointer pointer2 to the * pointer-to-pointer pointer1 */ pointer1 = &pointer2; /* Possible ways to find value of variable num*/ printf("\n Value of num is: %d", num); printf("\n Value of num using pointer2 is: %d", *pointer2); printf("\n Value of num using pointer1 is: %d", **pointer1); /*Possible ways to find address of num*/ printf("\n Address of num is: %p", &num); printf("\n Address of num using pointer2 is: %p", pointer2); printf("\n Address of num using pointer1 is: %p", *pointer1); /*Find value of pointer*/ printf("\n Value of Pointer pointer2 is: %p", pointer2); printf("\n Value of Pointer pointer2 using pointer1 is: %p", *pointer1); /*Ways to find address of pointer*/ printf("\n Address of Pointer pointer2 is:%p",&pointer2); printf("\n Address of Pointer pointer2 using pointer1 is:%p",pointer1); /*Double pointer value and address*/ printf("\n Value of Pointer pointer1 is:%p",pointer1); printf("\n Address of Pointer pointer1 is:%p",&pointer1); return 0; }