Поделиться через


Инициализация строк

Массив символов (или расширенных символов) можно инициализировать со строковым литералом (или расширенным строковым литералом). Пример:

char code[ ] = "abc";

Этот код инициализирует символьный массив code с четырьмя элементами. Четвертым элементом является символ null, которым завершаются все строковые литералы.

Длина списка идентификаторов может быть равна количеству инициализируемых идентификаторов. Если указанный размер массива меньше длины строки, то лишние символы игнорируются. Например, следующее объявление инициализирует символьный массив code с тремя элементами:

char code[3] = "abcd";

Массиву code присваиваются только первые три символа инициализатора. Символ d и символ null, завершающий строки, отбрасываются. Обратите внимание, что при этом будет создана незавершенная строка (т. е. строка без значения 0, которым обозначается ее конец) и сгенерировано диагностическое сообщение, указывающее на это состояние.

Объявление

char s[] = "abc", t[3] = "abc";

идентично объявлению

char s[]  = {'a', 'b', 'c', '\0'},
     t[3] = {'a', 'b', 'c' };

Если строка короче указанного размера массива, то остальные элементы массива инициализируются как равные 0.

Блок, относящийся только к системам Microsoft

В Microsoft C строковые литералы могут иметь длину до 2048 байт.

Завершение блока, относящегося только к системам Майкрософт

См. также

Инициализация