Kindly open source code @ Pointer.c and read it side-by-side to follow each step with description.
p = &b; // (1) Pointer 'p' now points to address of 'b'
q = p; // (2) Pointer 'q' now points to same location as pointer 'p'
r = &c; // (3) Pointer 'r' now points to address of 'c'
p = &a; // (4) Pointer 'p' now points to address of 'a'
*q = 8; // (5) Store/assign value 8 into where pointer 'q' was directed,
// in this case, 'b'
*r = *p; // (6) Store/assign value from pointer 'p' into where pointer 'r'
// was directed, in this case, 'c'
*r = a + *q + *&c; // (7) Store the sum of value 'a', value from
// pointer 'q', and value of 'c' into where
// pointer 'r' was directed, in this case, 'c'