整型字面值
十进制字面值的类型是int,long(编译的目标平台为32位时占4字节,编译的目标平台为64位时占8字节),long long中尺寸最小者。
八进制和十六进制的字面值的类型是int,unsigned int,long,unsigned long,long long,unsigned long long中尺寸的最小者。
auto value1=20;//十进制
auto value2=024;//八进制
auto value3=0x14;//十六进制
整型字面值通过添加后缀u或U表示为无符号类型,添加后缀l或者L表示为long类型,添加后缀ll或者LL表示为long long类型。
auto value1=20u;//unsigned int
auto value2=20ll;//long long
auto value3=20UL;//unsigned long
浮点数字面值
浮点数字面值的类型默认是double,可以表现为一个小数或指数形式,浮点数字面值添加后缀f或者F可以表示为float类型,添加后缀l或者L可以表示为long double类型。
auto value1=1.0;//double类型
auto value2=3.14e2;//double类型
auto value3=3.14f;//float类型
auto value4=3.14L;//long double类型
字符和字符串字面值
单括号扩起来的一个字符为字符字面值,双引号扩起来的一个0个或多个字符表示字符串字面值;
字符字面值或者字符串字面值通过添加前缀L表示为宽字符字面值或者宽字符串字面值,字符串字面值添加前缀u8表示为UTF8字符串字面值。
char char1 = 'A';//字符
wchar_t char2 = L'B';//宽字符
const char *strHelloWorld1 = "hello world";//字符串
const wchar_t *strHelloWorld2=L"hello world";//宽字符串
const char *strHelloWorld3 = u8"你好";//UTF8字符串
转义序列
有些字符不能直接使用,需要通过转义序列来实现,转义序列以反斜杆作为开始,包括
- 换行符\n
- 纵向制表符\v
- 横向制表符\t
- 反斜杆\\
- 回车符\r
- 退格符\b
- 问号?
- 进纸符\f
- 报警符\a
- 双引号\"
- 单引号\’
泛化的转义序列
泛化转义序列形式是一个\x后紧跟一个或多个十六进制数字,或者\后面紧跟1个、2个或3个八进制数字,其中数字部分表示字符对应的数值。
const char *str1 = "\x31\x32\x33\x34";
std::cout << str1 << std::endl;//1234