11 Declarators [dcl.decl]

11.6 Initializers [dcl.init]

11.6.2 Character arrays [dcl.init.string]

Массив narrow character type, char16_­t массив, char32_­t массив или wchar_­t массив может быть инициализирован узким строковым литералом, char16_­t строковым литералом, char32_­t строковым литералом или широким строковым литералом, соответственно, или строковым литералом соответствующего типа, заключенным в фигурные скобки ([lex.string]). Последовательные символы значения строкового литерала инициализируют элементы массива. [Example:

char msg[] = "Syntax error on line %s\n";

показывает массив символов, члены которого инициализированы с помощью string-literal. Обратите внимание, что, поскольку '\n' это один символ, и поскольку'\0' добавляется завершающий символ , sizeof(msg) это 25. ]end example

Инициализаторов не должно быть больше, чем элементов массива. [Example:

char cv[4] = "asdf";            // error

неправильно сформирован, поскольку нет места для подразумеваемого трейлинга '\0'. ]end example

Если инициализаторов меньше, чем элементов массива, каждый элемент, не инициализированный явно, должен быть zero-initialized.