2.2 字面值常量

来源:互联网 发布:找黑客拿网站数据库 编辑:程序博客网 时间:2024/06/07 09:53

        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++的格式非常自由,在一些地方不能插入空格,在一些地方不能断开一行,但可以通过使用反斜线符号巧妙实现。在一行的末尾加一反斜线可将此行和下一行当作同一行处理。
        反斜线符号必须是改行的尾字符,不允许其后面有注释或空格。同样,后继行行首的任何空格和制表符都是字符串字面值的一部分。

原创粉丝点击