character literal
character literal
Syntax
' c-char ' | (1) | |
---|---|---|
u8 ' c-char ' | (2) | (since C++17) |
u ' c-char ' | (3) | (since C++11) |
U ' c-char ' | (4) | (since C++11) |
L ' c-char ' | (5) | |
' c-char-sequence ' | (6) | |
where.
- c-char is either
1) narrow char
acter literal or ordinary char
acter literal, e.g. 'a'
or '\n'
or '\13'
. Such literal has type char
and the value equal to the representation of c-char
in the execution char
acter set. If c-char
is not representable as a single byte in the execution char
acter set, the literal has type int
and implementation-defined value
2) UTF-8 char
acter literal, e.g. u8'a'
. Such literal has type char
and the value equal to ISO 10646 code point value of c-char
, provided that the code point value is representable with a single UTF-8 code unit. If c-char
is not in Basic Latin or C0 Controls Unicode block, the program is ill-formed.
3) UCS-2 character literal, e.g. u'貓'
, but not u'?'
(u'\U0001f34c'
). Such literal has type char16_t
and the value equal to the value of c-char in Unicode, if it is a part of the basic multilingual plane. If c-char is not part of the BMP, the program is ill-formed.
4) UCS-4 character literal, e.g. U'貓'
or U'?'
. Such literal has type char32_t
and the value equal to the value of c-char in Unicode.
5) wide character literal, e.g. L'β'
or L'貓'
. Such literal has type wchar_t
and the value equal to the value of c-char in the execution wide character set. If c-char is not representable in the execution character set (e.g. a non-BMP value on Windows where wchar_t
is 16-bit), the value of the literal is implementation-defined.
6) Multicharacter literal, e.g. 'AB'
, has type int
and implementation-defined value.
Notes
Many implementations of multicharacter literals use the values of each char in the literal to initialize successive bytes of the resulting integer, in big-endian order, e.g. the value of '\1\2\3\4'
is 0x01020304
.
In C, char
acter constants such as 'a'
or '\n'
have type int
, rather than char
.
See also
| C documentation for character constant |
|:----|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.