字面值常量
整形字面值
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)