As you might fear, you can have pointers to pointers to pointers. Here is an example of that:
#include <stdio.h> void main ( void ) { int value; int *pv; int **ppv; int ***pppv; value = 32; pv = &value; ppv = &pv; pppv = &ppv; printf("value = %d\n", value ); printf("*pv = %d\n", *pv ); printf("*(*ppv) = %d\n", *(*ppv) ); printf("*(*(*pppv)) = %d\n", *(*(*pppv)) ); system("pause"); }
There is rarely a reason to have more than three levels of indirection (pointer to pointer to pointer to something), although C allows it.
What does this program write to the monitor?