1 // Test multiple levels of indirection 2 3 void testsingle() { 4 int a = 0; 5 int* pa = &a; 6 printf("a = %d, *pa = %d\n", a, *pa); 7 *pa = 2; 8 printf("a = %d, *pa = %d\n", a, *pa); 9 } 10 11 void testdouble() { 12 int a = 0; 13 int* pa = &a; 14 int** ppa = &pa; 15 printf("a = %d, *pa = %d **ppa = %d\n", a, *pa, **ppa); 16 **ppa = 2; 17 printf("a = %d, *pa = %d **ppa = %d\n", a, *pa, **ppa); 18 } 19 20 void testtripple() { 21 int a = 0; 22 int* pa = &a; 23 int** ppa = &pa; 24 int*** pppa = &ppa; 25 printf("a = %d, *pa = %d **ppa = %d\n ***pppa = %d", a, *pa, **ppa, ***pppa); 26 ***pppa = 2; 27 printf("a = %d, *pa = %d **ppa = %d\n ***pppa = %d", a, *pa, **ppa, ***pppa); 28 } 29 30 int main() { 31 testsingle(); 32 testdouble(); 33 testdouble(); 34 return 0; 35 } 36