Of course, a pointer to a pointer can be changed to point to a new thing:
#include <stdio.h> void main ( void ) { int value = 77, num = 99 ; int *pv= &value, *pn = &num ; int **ppi ; ppi = &pv; printf("**ppi = %d\n", **ppi ); ppi = &pn; printf("**ppi = %d\n", **ppi ); }
What does the program write?