C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Pointers in C

Pointer to pointer (double pointer)

C Program: Pointer to pointer (double pointer)

C

#include <stdio.h>

 

int main() {

    int var = 50;

    int *ptr;      // pointer to int

    int **pptr;    // pointer to pointer (double pointer)

 

    // Assign addresses

    ptr = &var;

    pptr = &ptr;

 

    // Display values and addresses

    printf("Value of var = %d\n", var);

    printf("Address of var = %p\n", &var);

 

    printf("Value stored in ptr (address of var) = %p\n", ptr);

    printf("Value pointed by ptr = %d\n", *ptr);

 

    printf("Value stored in pptr (address of ptr) = %p\n", pptr);

    printf("Value pointed by pptr (value of var) = %d\n", **pptr);

 

    return 0;

}

Output

 
OUTPUT 1 :
Value of var = 50
Address of var = 0x7ffee47ff56c
Value stored in ptr (address of var) = 0x7ffee47ff56c
Value pointed by ptr = 50
Value stored in pptr (address of ptr) = 0x7ffee47ff560
Value pointed by pptr (value of var) = 50

Explanation

  • var is a normal integer variable.
  • ptr is a pointer to int, which stores the address of var.
  • pptr is a pointer to a pointer, storing the address of ptr.
    • var → value of variable
    • *ptr → value of var (via pointer)
    • **pptr → value of var (via double pointer)