C++Primer第五版 4.5节练习

练习 4.17:说明前置递增运算符和后置递增运算符的区别。
练习4.18:如果第132页那个输出vector对象元素的while循环使用前置递增运算符,将得到什么结果?
练习4.19:假设ptr的类型是指向int的指针、vec的类型是vector、ival的类型是int,说明下面的表达式是何含义?如果表达式不正确,为什么?应该如何修改?

(a). ptr != 0 && *ptr++  (
(b). ival++ && ival
(c). vec[ival++] <= vec[ival]

练习4.17
答:前置递增运算符号和后置递增运算符的区别
前置递增运算符首先将运算对象加1(或减1),然后将改变后的对象作为求值结果。
后置递增运算也会将运算对象加1,但是求值结果是运算对象改变之前那个的副本。

int i = 0, j;
j = ++i;// j =1, i = 1;前置版本得到递减之后的值
j = i++;// j = 1, i = 2;后置版本得到递增之后的值

练习4.18
答:*++pbeg 不会输出第一个值,最后还会移动到一个不存在的地址,输出一个不存在的值,发生错误。

练习 4.19
答:
(1)指针的地址不为0,指针指向的元素不为0时表达式为真
(2)iival++与ival值相同,无意义
(3)为真

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值