[dcl.init.string] (original) (raw)

An array of ordinary character type ([basic.fundamental]),char8_­t array,char16_­t array,char32_­t array, or wchar_­t array can be initialized by an ordinary string literal, UTF-8 string literal, UTF-16 string literal, UTF-32 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-literalinitialize the elements of the array.

[ Example

:

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

shows a character array whose members are initialized with astring-literal.

Note that because'\n'is a single character and because a trailing'\0'is appended,sizeof(msg)is25.

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 ([dcl.init]).