1 字面值常量
一个形如42的值被称为字面值常量,每个字面值常量都对应一种数据类型,字面值常量的形式和值决定它的数据类型。
(1)
整型和浮点型 字面值常量
整型字面值常量写作十进制数,八进制数,十六进制数。以0开头的整型代表八进制数,以0x开头的整型代表十六进制数,例如,我们能用下面任意一种形式表示数20;
20//十进制;024//八进制;0x14//十六进制;
整型字面值具体的数据类型由它的值和符号决定。默认情况下,十进制数字面值是带符号的,八进制和十六进制数可能带符号可能不带符号。十进制带符号的类型由int,long,long long。中最小的那个。无符号的与其相对应。另外,十进制,十进制字面值不会是负数,比如我们使用了-42,那个负号并不在字面值之内,它的作用仅仅是对字面值取负。
浮点型字面值表现为一个小数或以科学计数法表示的指数,其中指数部分用E或e表示,默认的,浮点型字面值是一个double。
(2)字符和字符串字面值
由单引号括起来一个字符称为char类型字面值。双引号括起来的叫做字符串型字面值。字符串字面值的类型实际上是由常量字符构成的数组。编译器在每个字符串的结尾处添加一个'\0'空字符。字符串字面值的实际长度比他的内容多1.
如果两个字符串字面值的位置紧邻且仅有空格,缩进。换行分隔。则他们实际上是一个整体。
(3)转义字符
一共有两类字符是不能直接使用的。一种是不可打印字符。比如说退格符。另外一种是有特殊含义的字符。比如单引号,双引号,问号等。这些情况下就得使用转义字符,转义字符通常以\开头。常见的转义字符包括:
换行符 \n;横向制表符 \t; 报警符 \a;
纵向制表符 \v; 退格符 \b; 双引号 \";
反斜线 \\; 问号 \?; 单引号 \’;
回车符 \r; 进纸符 \f
我们也可以用泛化的转义字符,其形式是\x后紧跟着1个或多个十六进制字符数字,或者\后紧跟1个或多个八进制字符
其中数字部分表示的数值。使用LATIN-1字符集。
(4)指定字面值的类型
对于一个整形字面值来说,我们能分别指定它是否带空间或符号。如果是无符号数,则后缀加u。如果后缀有L,则至少是long型,如果是LL,则是long long型。
(5)指针字面值
nullptr 是指针字面值。