| // 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; |
| } |