C++Primer第五版:练习2.18 2.19 2.20 2.21 2.22 2.23 2.24

练习2.18

#include<iostream>

int main()
{
	int i = 5;
	int j = 6;
	int* pi = &i;

	pi = &j;//更改指针的值
	*pi = 7;//更改指针所指对象的值
}

练习2.19
指针本身是一个对象,允许对指针赋值和拷贝,而且在指针的声明周期内它可以先后指向几个不同对象。
指针无须在定义时赋初值。在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。

引用并非对象,它为对象起了一个别名。定义引用时,程序把引用和它的初始值绑定,因为引用一直绑定所以必须初始化。

练习2.20

#include<iostream>

int main()
{
	int i = 42;
	int* p1 = &i;
	*p1 = *p1 * *p1;
}

指针p1指向i的地址,p1指向的值改变为原p1指向的值的平方。

练习2.21
(a)非法,double类型的指针不能指向非double类型的值
(b)非法,指向的应该是地址
(c)合法

练习2.22

 p为int型的指针
 第一行判定p指针本身的值,本身有指向的值所以表达的条件值未true
 第二行判定p指针指向的值,此条件值取决于int型的值

练习2.23

  可以,用if条件句判断指针本身,若指针拥有一个合法值,就能用在条件表达式中

练习2.24

p为void类型,可以存放任意对象的地址
lp类型为long与int类型不符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值