字面值常量
整形字面值
20默认十进制
020以 0 作为前缀,八进制
0x20以 0x 作为前缀,十六进制
字符串常量
"ABC" 是一个字符串字面值
令auto c = "ABC" ,那么 c 是 const char* 数据类型,sizeof(c) 的结果是 8 ,指针大小为 8
sizeof("ABC") 结果是 4 ,因为字符串字面值常量是带有结尾符号 '\0' 的字符数组
L"ABC" 是一个宽字符字面值
令auto c = L"ABC",c 的类型是 const wchar_t* 作为指针的大小还是 8
但是 sizeof(L"ABC") 的结果是 8 ,是普通字符串的两倍
浮点型的常量
10. 默认是 double 类型的浮点型数据
10.f \ 10.F 带有 f \ F 后缀的小数,视作 float 类型的数据
10.l \ 10.L 带有 l \ L 后缀的小数,视作 long double 类型的数据
1E2L 是 long double 类型的数据,其数值为 1*10^2 得 100
指定字面值常量的类型
| 字符 指定字面值的类型 | ||
|---|---|---|
| 前缀 | 含义 | 类型 |
| u | Unicode 16 字符 | char16_t |
| U | Unicode 32 字符 | char32_t |
| L | 宽字符 | wchar_t |
| u8 | UTF-8(仅用于表示字符串常量) | char |
| 整型 指定字面值的类型 | ||
|---|---|---|
| 后缀 | 含义 | 类型 |
| u 或者 U | 无符号类型 | unsigned |
| l 或者 L | 长 | long |
| ll 或者 LL | 长长 | long long |
| 浮点型 指定字面值的类型 | ||
|---|---|---|
| 后缀 | 含义 | 类型 |
| f 或者 F | 单精度浮点型 | float |
| l 或者 L | 长 | long |
| ll 或者 LL | 长长 | long long |
布尔类型的常量
true 真
false 假
指针字面值常量
nullptr 空指针
示例
'a' 表示字符常量,类型为char
L'a' 表示宽字符常量,类型为 wchar_t
"a" 表示字符串常量,令 c = "a" 那么 c 的类型是 const char*
L"a" 表示宽字符常量,令c = L"a" 那么 c 的类型是 const wchar_t*
10 表示十进制的整形常量,类型为 int
4294967295 表示长长整形常量,类型为 long long 因为其数值超过了 int 类型的界限
令 int i = 4294967295 那么 i 会变成 -1
10u 表示无符号整形,类型为 unsigned int
10L 表示长整形,类型为 long
10uL 表示无符号长整形,类型为 unsigned long
012 八进制的整形,类型为 int
0xC 十六进制的整形,类型为 int
3.14 双精度浮点值,类型为 double
3.14f 表示单精度浮点型的字面值,类型为 float
3.14L 表示长精度浮点型的字面值,类型为 long double
10. 表示双精度浮点型的字面值,类型为 double

浙公网安备 33010602011771号