设为首页 加入收藏

TOP

2.1.3 字面值常量(2)
2013-10-07 16:25:17 来源: 作者: 【 】 浏览:90
Tags:2.1.3 面值 常量

2.1.3  字面值常量(2)

我们可以像使用普通字符那样使用C++(www.cppentry.com)语言定义的转义序列:

  1. std::cout << "Hi \x4dO\115!\n";     //输出Hi MOM!,转到新一行  
  2. std::cout << '\115' << '\n';        //输出M,转到新一行 

注意,如果反斜线\后面跟着的八进制数字超过3个,只有前3个数字与\构成转义序列。例如,"\1234"表示2个字符,即八进制数123对应的字符以及字符4。相反,\x要用到后面跟着的所有数字,例如,"\x1234"表示一个16位的字符,该字符由这4个十六进制数所对应的比特唯一确定。因为大多数机器的char型数据占8位,所以上面这个例子可能会报错。一般来说,超过8位的十六进制字符都是与表2.2中某个前缀作为开头的扩展字符集一起使用的。

指定字面值的类型

通过添加如表2.2中所列的前缀和后缀,可以改变整型、浮点型和字符型字面值的默认类型。

  1. L'a'        // 宽字符型字面值,类型是wchar_t  
  2. u8"hi!"         // utf-8字符串字面值(utf-8用8位编码一个Unicode字符)  
  3. 42ULL       // 无符号整型字面值,类型是unsigned long long  
  4. 1E-3F       // 单精度浮点型字面值,类型是float  
  5. 3.14159L    // 扩展精度浮点型字面值,类型是long double 

当使用一个长整型字面值时,请使用大写字母L来标记,因为小写字母l和数字1太容易混淆了。

表2.2:指定字面值的类型

2.2:指定字面值的类型

字符和字符串字面值

前缀

含义

类型

u

Unicode 16字符

char16_t

U

Unicode 32字符

char32_t

L

宽字符

wchar_t

u8

Utf-8(仅用于字符串字面常量)

char

整型字面值

浮点型字面值

后缀

最小匹配类型

后缀

类型

u or U

unsigned

fF

float

l or L

long

lL

long double

ll or LL

long long

 

 

对于一个整型字面值来说,我们能分别指定它是否带符号以及占用多少空间。如果后缀中有U,则该字面值属于无符号类型,也就是说,以U为后缀的十进制数、八进制数或十六进制数都将从unsigned int、unsigned long和unsigned long long中选择能匹配的空间最小的一个作为其数据类型。如果后缀中有L,则字面值的类型至少是long;如果后缀中有LL,则字面值的类型将是long long和unsigned long long 中的一种。显然我们可以将U与L或LL合在一起使用。例如,以UL为后缀的字面值的数据类型将根据具体数值情况或者取unsigned long,或者取unsigned long long。

布尔字面值和指针字面值

true和false是布尔类型的字面值:

  1. bool test = false

nullptr是指针字面值,2.3.2节(第52页)将有更多关于指针和指针字面值的介绍。

2.1.3节练习

练习2.5:指出下述字面值的数据类型并说明每一组内几种字面值的区别:

(a) 'a', L'a', "a", L"a"

(b) 10, 10u, 10L, 10uL, 012, 0xC

(c) 3.14, 3.14f, 3.14L

(d) 10, 10u, 10., 10e-2

练习2.6:下面两组定义是否有区别,如果有,请叙述之:

  1. int month = 9day = 7;  
  2. int month = 09day = 07;  

练习2.7:下述字面值表示何种含义?它们各自的数据类型是什么?

(a) "Who goes with F\145rgus \012"

(b) 3.14e1L   (c) 1024f  (d) 3.14L

练习2.8:请利用转义序列编写一段程序,要求先输出2M,然后转到新一行。修改程序使其先输出2,然后输出制表符,再输出M,最后转到新一行。
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.1.3 字面值常量(1) 下一篇回顾一下我所做过的网站

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)