| // Test multiple levels of indirection | |
| void testsingle() { | |
| int a = 0; | |
| int* pa = &a; | |
| printf("a = %d, *pa = %d\n", a, *pa); | |
| *pa = 2; | |
| printf("a = %d, *pa = %d\n", a, *pa); | |
| } | |
| void testdouble() { | |
| int a = 0; | |
| int* pa = &a; | |
| int** ppa = &pa; | |
| printf("a = %d, *pa = %d **ppa = %d\n", a, *pa, **ppa); | |
| **ppa = 2; | |
| printf("a = %d, *pa = %d **ppa = %d\n", a, *pa, **ppa); | |
| } | |
| void testtripple() { | |
| int a = 0; | |
| int* pa = &a; | |
| int** ppa = &pa; | |
| int*** pppa = &ppa; | |
| printf("a = %d, *pa = %d **ppa = %d\n ***pppa = %d", a, *pa, **ppa, ***pppa); | |
| ***pppa = 2; | |
| printf("a = %d, *pa = %d **ppa = %d\n ***pppa = %d", a, *pa, **ppa, ***pppa); | |
| } | |
| int main() { | |
| testsingle(); | |
| testdouble(); | |
| testdouble(); | |
| return 0; | |
| } |