Обычно при объявлении указателя (например, целое число), вы должны назначить адрес памяти к нему:Почему вы можете назначить массив указателю на char?
int value = 123;
int* p = &value;
При создании указателя обугленного, вы можете присвоить массив символов в ней без необходимо указать адрес:
char* c = "Char Array";
Как это работает? Он выделяет память и указывает на это? Почему другие указатели типа не могут делать то же самое?
Вы не можете сделать это, например: 'char * c = &'a';' –
Обратите внимание, что 'char * c =" char array "' не будет компилироваться в C++; вы хотели спросить о C, а? – edmz
@ Daniel Ваш компилятор C++ отстой, если он, по крайней мере, не дает вам предупреждения. –