What is the difference between int *a[3] and int (*a)[3]?
int *a[3]
int (*a)[3]
int *a[3] : a is a array of 3 pointers to integer type
int (*a)[3] : a is a pointer to an array of 3 integer type