What is a pointer to pointer in C

1 Answer

0 votes
/*
Pointer to pointer (**pp) is a pointer variable which holds the address 
of another pointer variable (*p).
*/
 
#include <stdio.h>
 
int main(void)
{
    int n = 13, *p = &n, **pp = &p;
     
    printf("n    = %d (n)\n", n);
    printf("*p   = %d (*p = &n)\n", *p);
    printf("**pp = %d (**pp = &p)\n\n", **pp);
     
    printf("&n  = %p (n)\n", &n);
    printf("p   = %p (*p = &n)\n", p);
    printf("*pp = %p (**pp = &p)\n\n", *pp);
 
    printf("&p  = %p\n", &p);
    printf("pp  = %p (**pp = &p)\n\n", pp);
 
    printf("&pp = %p\n", &pp);
 
    return 0;
}
 


   
/*
run:
     
n    = 13 (n)
*p   = 13 (*p = &n)
**pp = 13 (**pp = &p)

&n  = 0x7ffcbff9f444 (n)
p   = 0x7ffcbff9f444 (*p = &n)
*pp = 0x7ffcbff9f444 (**pp = &p)

&p  = 0x7ffcbff9f448
pp  = 0x7ffcbff9f448 (**pp = &p)

&pp = 0x7ffcbff9f450
 
*/

 

 



answered Jun 20, 2017 by avibootz
edited May 21, 2024 by avibootz

Related questions

1 answer 148 views
148 views asked Jun 21, 2017 by avibootz
2 answers 250 views
1 answer 172 views
172 views asked May 5, 2017 by avibootz
2 answers 169 views
169 views asked May 5, 2017 by avibootz
1 answer 200 views
200 views asked Aug 23, 2016 by avibootz
1 answer 109 views
...