summaryrefslogtreecommitdiffstats
path: root/libacc/tests/data/pointers2.c
blob: 69e402f6990cd60109c04f6ed4fb3206e1211e23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 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;
}