I have not been able to find an answer to this question (I have looked so apologies if it is a repeat). In C when initializing a char array there are roughly two methods as I know it:
char[] a = "Hello";
char * b = "Hello";
These achieve the same result but the second initialization for 'b' confuses me. I understand the initialization for 'a' as it is the somewhat the equivalent to *(char *a) = "Hello"
assuming that memory has been allocated etc etc ...
But the syntax for the initialization of 'b' looks to me like 'b' is a pointer, pointing to an address "Hello" which of course makes no sense unless the ASCII values are being used.
As far as I have seen there are no equivalents to 'b's initialization for intergers or another data type.
If anyone could offer an explanation that would be great ! I have been using C for a long time and this one has always slightly bugged me and I have not been able to think of/find an answer