Следующий код является совершенным,
int *ia = (int[]){1,3,5,7};
но когда я компилирую следующую строку кода,
char *p = (char[]) "abc";
gcc говорит
test.c:87: error: cast specifies array type
Кажется, что они были брошены таким же образом. Почему второй получил сообщение об ошибке?
Как вы, ребята, сказали: "abc" - это указатель, который нельзя преобразовать в указатель. Итак, мой другой вопрос: почему
char[] s = "abc";
. Как работает эта строка кода при компиляции?