c++ primer 练习 2.26、2.27、2.28、2.29、2.30、2.31

来源:互联网 发布:免费个人资料档案软件 编辑:程序博客网 时间:2024/06/06 18:31

练习 2.26

a不合法,const对象必须初始化 b合法

c合法,cnt的常量特征仅仅在执行改变ci的操作时才会发挥作用

d不合法


练习 2.27

只有a和f非法

(a)int i = -1, &r = 0;

非法, 非常量引用的初始值必须是一个对象

(b)int *const p2 = &i2;

合法。const pointer

(c)const int i = -1, &r = 0;

合法, 常量引用可以绑定字面值, 一般表达式

(d) 合法

(e) 合法

(f) 非法

(g) 合法


练习 2.28

从右向左读法

a. 不合法。 cp首先是一个常量, 未初始化

b. 不合法。 p2首先是一个常量, 必须初始化

c. 不合法。 ic未初始化

d. 不合法。 p3未初始化

e. 合法。 p是一个指向常量的指针,而非常量


练习 2.29

a. 合法

b. 不合法。p3 是一个指向常量的常量指针, p1是指向变量的指针, 如果合法,就会扩大常量的操作范围

c. 不合法。变量指针无法持有常量

d. 不合法。无法改变常量的值

e. 不合法。无法改变常量的值

f. 不合法。无法改变常量的值


练习 2.30

从左到右:

v2 顶层常量, v1 无层变量,p1 无层变量, r1 对v1的引用

p2 底层常量, p3 顶层常量, r2 既是顶层 const 也是底层 const


练习 2.31

mdzz 这题不做了, 总之就是, 具有相同底层资格才能赋值,

顶层const不能赋值,必须初始化。

0 0
原创粉丝点击