I'm confused about the use of the dereference operator in the declaring of char arrays.
I think I understand that the dereference operator is used to dereference memory addresses to their values, and also in an unrelated function in the declaration of pointers; and that arrays are like special pointers to memory addresses.
But why is the * operator used in declaring char arrays, e.g.:
char * carr = "Hello";
Why doesn't the following work, and instead give a series of "invalid conversion from `const char*' to `char'" errors?:
char carr[5] = {"H", "e", "l", "l", "o"};
Why are char arrays different than say int arrays?