第四章 习题4-31-习题4-40

习题4-31:

参照P132 4.5节中的建议:

"前置版本的递增运算符避免了不必要的工作,它把值加1后直接返回改变了运算对象。与之相比,后置版本需要将原始值存储下来以便于返回这个未修改的内容,如果我们不需要修改前的值,那么后置版本的操作就是一种浪费"

for(init;condition;increment):expression 语句中,首先执行init,判断condition,执行expression,然后increment;

程序:

void main()
  {
      vector<int> ivec(10,0); 

      vector<int>::size_type cnt = ivec.size();

      for (vector<int>::size_type ix = 0; ix != ivec.size(); ix++, cnt++)
          ivec[ix] = cnt;

  }

习题4-32

遍历数组;ix为下标,ptr为指针;

习题4-33

逗号运算符的优先级低于所有运算符,所以先运行?:语句,最后运行--y

someValue?++x,++y:--x,--y=(someValue?++x,++y:--x),--y

习题4-34

a) fval:float转化为bool

b) ival 由int转化为float,相加后结果由float转化为double;

c) cval由char转化为int,乘积由int转化为double;

习题4-35

a)'a'先转化为int,求得的和再转化为char;

b)注意:c++默认小数为double型,1.0为double型,所以ival和ui转化为double,赋值时double转化为float;

c)ui转化为float,然后乘积由float转化为double;

d)ival转化为float,ival+fval其和由float转化为double,double最后转化为char;

习题4-36

i*=static_cast<int>(d);

习题4-37

(a)pv=const_cast<string *>ps    //void *可以存放任意类型的地址 ps转化为非常量
   pv=static_cast<void *>(const_cast<string *>ps ) ps转化为非常量,然后转化为void*型
(b)i=static_cast<int> (*ps);
(c)pv=static_cast<void *> (&d);
(d)pc=reinterpret_cast<char *>(pv) or pc = static_cast<char *>(pv);

习题4-38 

首先计算int型出发j/i,然后将int型转化为double型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值