What is the difference between the following declarations:
int* arr1[8]; int (*arr2)[8]; int *(arr3[8]);
What is the general rule for under
int *a[4]; // Array of 4 pointers to int int (*a)[4]; //a is a pointer to an integer array of size 4 int (*a[8])[5]; //a is an array of pointers to integer array of size 5