C++ Primer(第五版) 4.1.2--4.4节练习

4.1    105

4.2    (a)    *(vec.begin())shiyong
         (b)    (*(vec.begin())) + 1

4.3    两个准则可以避免缺陷:
         1.    不确定求值顺序时使用括号;
         2.    如果改变了某个对象的值,在表达式其他地方不要再使用这个对象,例外:改变运算对象的子表达式本身是另外一个子表达式的运算对象,如*++iter。

4.4    91

4.5    (a)-86; (b)-18;    (c)0;    (d)-2。

4.6    if (i % 2)

4.7    当计算结果超出该类型所能表示的范围就会产生溢出。

4.8    逻辑与和或运算符都按照先左侧后右侧的顺序求值,且仅当左侧运算对象无法确定表达式结果才计算右侧,即短路求值。

4.9    先检查cp是否为有效,再检查*cp是否为0,该表达式结果为true。

4.10    while (cin >> i && i != 42)

4.11    a > b && b > c && c > d

4.12    等价与 i != (j < k)

4.13    (a) i = 3; d = 3;    (b) i = 3; d = 3.5;

4.14    if (42 = i)    //非法,= 左侧必须是左值;
           if  (i = 42)    //合法,但永远为真;应改为  i == 42

4.15    pi是指针类型,无法转换成ival的类型, 修改:
           double dval; int ival; int *pi;
           dval = ival = 0;
           pi = 0;

4.16    (a) 赋值运算符优先级低,应该为:if ( (p = getPtr() ) != 0)
           (b) 混淆相等运算符和赋值运算符,应该为 if (i == 1024)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值