11 Declarators [dcl.decl]

11.6 Initializers [dcl.init]

11.6.2 Character arrays [dcl.init.string]

An array of narrow character type, char16_­t array, char32_­t array, or wchar_­t array can be initialized by a narrow string literal, char16_­t string literal, char32_­t string literal, or wide string literal, respectively, or by an appropriately-typed string literal enclosed in braces ([lex.string]). Successive characters of the value of the string literal initialize the elements of the array. [Example:

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

shows a character array whose members are initialized with a string-literal. Note that because '\n' is a single character and because a trailing '\0' is appended, sizeof(msg) is 25. end example]

There shall not be more initializers than there are array elements. [Example:

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

is ill-formed since there is no space for the implied trailing '\0'. end example]

If there are fewer initializers than there are array elements, each element not explicitly initialized shall be zero-initialized.