Files
2025-10-25 03:02:53 +03:00

2.3 KiB

[dcl.init.string]

9 Declarations [dcl]

9.5 Initializers [dcl.init]

9.5.3 Character arrays [dcl.init.string]

1

#

An array of ordinary character type ([basic.fundamental]),char8_t array,char16_t array,char32_t array, or wchar_t array may 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]).

Additionally, an array of char orunsigned char may be initialized by a UTF-8 string literal, or by such a string literal enclosed in braces.

Successive characters of the value of the string-literal initialize the elements of the array, with an integral conversion ([conv.integral]) if necessary for the source and destination value.

[Example 1:

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]

2

#

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

[Example 2:

char cv[4] = "asdf"; // error is ill-formed since there is no space for the implied trailing'\0'.

— end example]

3

#

If there are fewer initializers than there are array elements, each element not explicitly initialized shall be zero-initialized ([dcl.init]).