Читая этот вопрос , я хотел протестировать ввод в GCC, чтобы увидеть, какие ошибки будут выводиться. К моему удивлению, следующая строка:
char array[] = {"s"};
компилируется без ошибок или предупреждений, в результате получается массив размером 2, содержащий «s \ 0»
. Я ожидал ошибки компилятора, потому что правая часть выражения имеет тип char * []
.
Не рассматривается ли инициализация массива только с одним элементом как массив в этом случае, и почему?