您的位置:首页 > 编程语言 > C语言/C++

C++Primer第五版 第二章习题答案(21~30)

2016-11-19 10:24 253 查看
2.21

1:非法定义,类型不一致

2:非法定义,没有取址操作符

3:合法定义。

2.22

第一个判断的是:P指针是否为空指针

第二个判断的是:P指针所指向的对象是否为0

2.23

不可以,指针是否有效还不知道呢!!!

2.24

因为lp的类型不是int,而void定义了一个空指针,可以接受任意类型的对象。

2.25

1:ip是一个int类指针型的,i是一个int型的变量,r是一个int型的引用。

2;i是一个int型的变量,ip是一个空指针。

3:ip是一个int类型的指针,ip2是一个int类型的变量。

2.26

涉及知识点:const表示的不可改变的量!:const用在变量定义时的类型前表示该变量不可改变,注意:该变量必须初始化(可以在运行时初始化)。

a:不合法,变量未初始化。

b:合法

c:合法

d:不合法,变量sz是一个const变量,不能被改变。

2.27 

涉及知识点:

指针与const:1:指向常量的指针:要想存放变量的地址,必须使用指向常量的指针:const int *p

2:常量指针:指针自身是一个对象,不可变。int *const p = &pi   (常量指针必须初始化!!!)

3:指向常量的常量指针。const  int *const p (不仅指针本身不可变,指针所指对象也不可变)

引用与const:

将引用定义为常量:const int &i

a:引用r的赋值对象必须是一个对象,所以不合法

b:合法,将p2设为一个常量指针,初始化为i2对象的地址

c:合法,将i设为常量,r设置为常量的引用(注意const   int   &r = 0  是正确的,但是int  &r = 0是不正确的)

d:合法,p3为指向常量的常量指针,初始值为i2的地址

e:合法,p1为指向常量的指针,初始值为i2的地址

f:使用不合法

g:合法,正常的赋值。

2.28

a:不合法,常量指针cp未初始化

b:不合法,常量指针p2未初始化

c:不合法,常量ic未初始化

d:不合法,常量指针p3未初始化

e:合法

 2.29

a:合法

b:不合法,const int 和 int 不是一个类型,指向常量的指针在赋值时必须类型一致

c:和b相同

d:不合法,p3是一个常量指针,不能被再次赋值

e:不合法,p2是一个常量指针,不能被再次赋值

f:不合法,ic是个常量,不能被再次赋值

2.30

涉及知识点:

顶层const:指的是本身不可以被改变。

底层const:指的是自身所指对象不可以被改变。

用于声明引用的const都是底层const

v2是顶层const;

p2是底层const;

p3最左是底层,右侧是顶层const;

其他都不是const;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息