What is the difference between
char *array[10];
and
char (*array)[10]; ?
By my understanding,
- Case 1:
- arrayis declared as an array of character arrays of size 10.
- This is because []has higher precedence than*.
 
- Case 2:
- arrayis declared as a pointer to a character array of size 10.
- This is because ()and[]have the same precedence and they are evaluated from left-to-right. Then the*operator is evaluated.
 
Is my understanding correct? Even if it is correct, I get incredibly confused. Can someone please explain the difference a little more clearly?
 
     
     
     
     
     
    