difference between --

char a[SIZE]; //Char array of size (SIZE)

char *a; //character pointer. Points towards a char (a).

char *a[SIZE]; // Array of pointer characters.

char *(a[SIZE]); // Pointer to an array of characters.

char (*a[SIZE]);



ARE char *a[SIZE]; and char (*a[SIZE]); EQUIVALENT ??
And we also say string a; is actually char *a;. So the later is a pointer to a character , which when initialised stores address of char a. So how it acts as a string? Isn't it just a variable storing address of a single character. Similar to int *i. Which is a pointer to an integer not an array of integers.

Very confused !!!!