В C: инициализация массива только с одним элементом обрабатывается особым образом?

Читая этот вопрос , я хотел протестировать ввод в GCC, чтобы увидеть, какие ошибки будут выводиться. К моему удивлению, следующая строка:

char array[] = {"s"};

компилируется без ошибок или предупреждений, в результате получается массив размером 2, содержащий «s \ 0» . Я ожидал ошибки компилятора, потому что правая часть выражения имеет тип char * [] .

Не рассматривается ли инициализация массива только с одним элементом как массив в этом случае, и почему?

8
задан Community 23 May 2017 в 11:45
поделиться