|
|
5
是一个 字面值常量。
|
|
1776
始终代表值 一千七百七十六。0
(零)字符。对于十六进制,它们的前面是 0x
(零,x)字符。例如,以下字面值常量都等价于
|
|
int
类型。但是,可以在整数字面值后附加某些后缀来指定不同的整数类型后缀 | 类型修饰符 |
---|---|
u 或 U | unsigned |
l 或 L | long |
ll 或 LL | long long |
unsigned long
或 unsigned long long
。
|
|
e
字符(表示“乘以 10 的 X 次方”,其中 X 是跟在 e
字符后面的整数值),或者同时包含小数点和 e
字符。
|
|
double
。可以通过添加以下后缀之一来指定 float
或 long double
类型的浮点数字面值后缀 | 类型 |
---|---|
f 或 F | float |
l 或 L | long double |
|
|
e
、f
、l
)中的任何一个都可以使用小写或大写字母编写,含义没有区别。
|
|
'
)之间;要表示字符串(通常由多个字符组成),我们将字符放在双引号("
)之间。x
'x'
x
指的是一个标识符,例如变量名或复合类型名;而 'x'
(包含在单引号中)指的是字符字面值 'x'
(代表小写字母 x 的字符)。\n
)或制表符(\t
)。所有这些特殊字符前面都带有反斜杠字符(\
)。转义码 | 描述 |
---|---|
\n | 换行 |
\r | 回车 |
\t | 制表符 |
\v | 垂直制表符 |
\b | 退格 |
\f | 换页符 |
\a | 响铃(蜂鸣) |
\' | 单引号(' ) |
\" | 双引号(" ) |
\? | 问号(? ) |
\\ | 反斜杠(\ ) |
'\n'
'\t'
"Left \t Right"
"one\ntwo\nthree"
\
),后跟以八进制(基数为 8)或十六进制(基数为 16)表示的代码。对于八进制值,反斜杠后面直接跟着数字;而对于十六进制,则在反斜杠和十六进制数字本身之间插入一个 x
字符(例如:\x20
或 \x4A
)。
|
|
|
|
\
)被视为一个行续接字符,它将当前行和下一行合并为一行。因此,以下代码
|
|
|
|
char
类型的字符组成。可以通过使用以下任一前缀来指定不同的字符类型前缀 | 字符类型 |
---|---|
u | char16_t |
U | char32_t |
L | wchar_t |
char16_t
使用小写,而 char32_t
和 wchar_t
使用大写。u
、U
和 L
之外,还有两个额外的前缀前缀 | 描述 |
---|---|
u8 | 字符串字面值在可执行文件中使用 UTF-8 编码 |
R | 字符串字面值是原始字符串 |
R"sequence("
和一个结束的 ")sequence"
分隔,其中 sequence
是任何字符序列(包括空序列)。字符串的内容是括号内的内容,忽略分隔序列本身。例如
|
|
"string with \\backslash"
。R
前缀可以与任何其他前缀结合使用,例如 u
、L
或 u8
。true
、false
和 nullptr
。true
和 false
是 bool
类型变量的两个可能值。nullptr
是空指针值。
|
|
|
|
|
|
31.4159 |
#define 标识符 替换内容
identifier
的任何出现都将被解释为 replacement
,其中 replacement 是任何字符序列(直到行尾)。此替换由预处理器执行,并在程序编译之前发生,从而导致一种盲目替换:涉及的类型或语法的有效性不会以任何方式进行检查。
|
|
31.4159 |
#define
行是预处理器指令,因此它们是单行指令,与 C++ 语句不同,不需要在末尾加分号(;);指令会自动扩展到行尾。如果行中包含分号,它将成为替换序列的一部分,并且也会包含在所有被替换的出现中。![]() 变量与类型 | ![]() 目录 | ![]() 运算符 |