I just want to make sure the difference between *a[5] and (*a)[5] in C language.
I know that the *a[5] means the array a can have five elements and each element is pointer. so,
char *p = "ptr1";
char *p2 = "ptr2";
char *a[5] = { p , p2 };
It does make sense.
But when I changed *a[5] to (*a)[5] it doesn't work.
char (*a)[5] = { p , p2};
What does (*a)[5] mean exactly?
In addition,
is there any difference between *a[5] and a[5][], and (*a)[5] and a[][5]?