The declaration

Int (*p) [5] means

(1) p is a one dimensional array of size 5, of pointers to integers (2) p is a pointer to a 5 element integer array (3) same as int *p[5]; (4) none of these

Int (*p) [5] means

(1) p is a one dimensional array of size 5, of pointers to integers (2) p is a pointer to a 5 element integer array (3) same as int *p[5]; (4) none of these