前言
一个比如42的值被称作为字面值常量(literal)。每个字面值常量都对应一种数据类型,字面值常量的形式和值决定了它的数据类型。
一、整型和浮点型字面值
1.整型字面值
整数型字面值可以写作十进制,八进制或十六进制。其中以0开头的整数代表八进制,以0x或0X开头的代表十六进制数。
比如:
//用任意一种形式来表示数字20
20 //十进制
024 //八进制
0x14 //十六进制
整型字面值具体的数据类型由它的值和符号决定。默认情况下,十进制是带符号数的,八进制和十六进制字面值既可能是带符号的也可能是无符号的。
ps:需要注意如果一个字面值连与之关联的最大数据类型都放不下,那么将会产生错误。
虽然整数字面值可以存储带符号都数据类型中,严格来说,十进制字面值不会是负数。假设我们使用了-42的负十进制字面值,那个符号并不在字面值之内,它的作用仅仅是对字面值取负值而已。
2.浮点型字面值
浮点字面值表现为一个小数或科学计数法表示的指数,其中指数部分用e或E标识:
3.14159
3.14159E0
0.
0e0
.001
默认浮点型字面值是一个double
3.转义序列
有两类字符编写中不能直接使用分别是:
1.不可打印的字符,比如退格或其他控制字符,因为他们没有可视的字符。
2.在C++语言中含有特殊含义的字符(单引号,双引号,问号,反斜线)。
这些情况下需要使用转义序列(escape sequence),转义序列均以反斜线作为开始。
C++规定的转义序列包括:
换行符 \n 横向制表符 \t 报警符 \a
纵向制表符 \v 退格符 \b 双引号 \"
反斜线 \\ 问号 \? 单引号 \'
回车符 \r 进纸符 \f
cout<<'\n'; //转到新一行
cout<<"\tHi!\n"; //输出一个制表符,输出“Hi!",转到新一行