5. Given the following declarations and assignments, what do
these expressions evaluate to?
int a1[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
int *p1, *p2;
p1 = a1+3;
p2 = &a1[2];
(a) *(a1+4) (b) a1[3] (c) *p1 (d) *(p1+5) (e) p1[-2]
(f) *(a1+2) (g) a1[6] (h) *p2 (i) *(p2+3) (j) p2[-1]