您的位置:首页 > 其它

2.2 字面值常量

2012-02-26 12:32 120 查看
2.2 字面值常量

字面值常量,称之为字面值是因为只能用它的值来称呼它,称之为常量是因为它的值不能修改。

每个字面值都有相应的类型。

只有内置类型存在字面值,没有类类型的字面值。因此也没有任何标准库类型的字面值。

1. 整型字面值规则

定义字面值整数常量可以使用以下三种进制中的任何一种:十进制、八进制和十六进制,这些进制不会改变其二进制位的表示形式。以0开头的字面值整数常量表示八进制,以0x或0X开头的表示十六进制。

字面值整数常量的类型默认为int或long类型。其精度类型决定于字面值,其值适合int就是int类型,比int大的值就是long类型。

通过增加后缀,能强制将之面值整数常量转换为long、unsigned、unsigned long类型。通过在数值后面增加U或u指定常量为unsigned类型,通过在数值后面加L或l指定常量为long类型,同时加U/u和L/l就得到unsigned long类型。数值与后缀之间不能加空格。

没有short类型的字面值常量。

2. 浮点字面值规则

通常可以用十进制或者科学计数法来表示浮点字面值常量。使用科学计数法时,指数用E或e表示。

默认的浮点字面值常量为double类型。在数值的后面加上F或f表示单精度,同样加上L或l表示扩展精度。

3. 布尔字面值和字符字面值

单词true和false是布尔型的字面值。

可打印的字符型字面值通常用一对单引号来定义,这些字符都是char类型的。在字符面值前面加L就能得到wchar_t类型的宽字符字面值。

4. 非打印字符的转义序列

不可打印字符和特殊字符都用转义字符书写,转义字符都是以反斜线符号开始。

可以将任何字符表示为\ddd(一到三个八进制)或\xhh(一到两个十六进制)。

5. 字符串字面值

字符串字面值是一串常量字符,用双引号括起来的零个或者多个字符表示,不可打印字符表示成相应的转义字符。

为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。

也存在宽字符串字面值,一样在前面加L。

宽字符串字面值是一串常量宽字符,同样以一个宽空字符结束。

6.字符串字面值的连接

两个相邻的仅由空格、制表符或换行符分开的(宽)字符串字面值可以连接成一个新(宽)字符串字面值。

如果连接字符串字面值和宽字符串字面值,其结果是未定义的,这个程序可能执行,也可能会崩溃或者长生没有用的值,而且在不同的编译器下程序的动作可能不同。

C++的格式非常自由,在一些地方不能插入空格,在一些地方不能断开一行,但可以通过使用反斜线符号巧妙实现。在一行的末尾加一反斜线可将此行和下一行当作同一行处理。

反斜线符号必须是改行的尾字符,不允许其后面有注释或空格。同样,后继行行首的任何空格和制表符都是字符串字面值的一部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: