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]
?