&dom`x -> int * 0 &dom`y -> int * 4 &dom`foo -> struct foo * 8 p -> struct foo * 8 &p->i -> int * 8 get 8 c get 8 c p->i -> int 0 &p->p -> int ** c get c 10 get c 10 p->p -> int * 0 get c 10 get 0 4 get c 10 get 0 4 *p->p -> int 0 p+1 -> struct foo * 10 &(p+1)->i -> int * 10 get 10 14 get 10 14 (p+1)->i -> int 0 &(p+1)->p -> int ** 14 get 14 18 get 14 18 (p+1)->p -> int * 0 get 14 18 get 0 4 get 14 18 get 0 4 *(p+1)->p -> int 0 *** dom`a *** p -> struct foo * 10 &p->i -> int * 10 get 10 14 get 10 14 p->i -> int 0 &p->p -> int ** 14 get 14 18 get 14 18 p->p -> int * 0 get 14 18 get 0 4 get 14 18 get 0 4 *p->p -> int 0 *** &dom`a[1] *** p -> struct foo * 18 &p->i -> int * 18 get 18 1c get 18 1c p->i -> int 0 &p->p -> int ** 1c get 1c 20 get 1c 20 p->p -> int * 0 get 1c 20 get 0 4 get 1c 20 get 0 4 *p->p -> int 0