2.1.3 字面值常量
一个形如42的值被称作字面值常量(literal),字面值常量的形式和值决定了它的数据类型。
整型和浮点型字面值
整型字面值具体的数据类型由它的值和符号决定。
浮点型字面值默认是一个double。
字符和字符串字面值
由单引号括起来的一个字符称为char型字面值,双引号括起来的零个或多个字符构成字符串型字面值。
‘a’ //字符字面值
“Hello World!” //字符串字面值
==其中编译器会在每个字符串的结尾处添加一个空字符(’\0’),因此字符串字面值的实际长度会比它的实际内容多1.==
转义序列
两类字符不能直接使用:
1.不可打印的字符。如退格或者其他控制字符;
2.有特殊含义的字符(单引号,双引号,问号,反斜线)。
这些情况下需要用到转义序列,均以反斜线作为开始:
换行符 \n 横向制表符 \t 报警符 \a
纵向制表符 \t 退格符 \b 等等
程序中将上述转义序列当作一个字符使用:
std::cout<<'\n'; //转到新一行
std::cout<<"\tHi!\n"; //输出一个制表符,输出“Hi!”,转到新一行
其实就是这些字符表示特殊的意思,但是不用反斜线\无法表达出这个意思,因此用\作为标记。
也可以用\x后紧跟1个或多个十六进制数字,或者\后紧跟1个,2个或2个八进制数字,其中数字部分表示的是字符对应的数值,也可用作转义序列。
注意:
如果反斜线后面跟着的八进制数字超过3个,只有前3个数字构成转义序列,例如“\1234”,表示两个字符,即八进制数123对应的字符以及字符4。相反,\x要用到后面跟着的所有数字。