I can't understand why this piece of code works:
int main() {
    char *a = "Hello";
    printf("this is %s      ",a);
    int i = 0;
    for (i = 0; a[i] != '\0'; i++)
        printf("this is : %c    ",a[i]);
}
My questions are:
- in the FOR loop, why can I refer to the *a as an array? 
- is/where it more advisable to use an array to represent a an array or a pointer. 
Thank you for your help.
Mike
 
     
    