搜索
查看: 1675|回复: 3
打印 上一主题 下一主题

【第二章第10节】动手试一试 题解

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-21 14:59:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 rosynirvana 于 2014-4-21 15:05 编辑

执行这三句语句时,变量a, b中的值见下表:

               变量a      变量b
执行前   a               b
第一句   b-a           b
第二句   b-a           b-(b-a) = a
第三句   b-a+a=b  a


也可以参考
http://bbs.ahalei.com/thread-2758-1-2.html 地板的回复

这种写法的由来:

在很久以前,存储器的价格非常昂贵,中间变量能省就省,所以就有人研究出了这种写法。
但是现在存储器的价格已经非常便宜了,没必要使用这种写法
而且
  1. int temp;
  2. temp = a;
  3. a = b;
  4. b = temp;
复制代码

这种写法容易被编译器识别,从而使用CPU的某些指令进行优化,加快运行的速度

但是这种写法并不一定正确,因为无符号整数的溢出是未定义的,保证正确的写法是使用位运算:
  1. a ^= b;
  2. b ^= a;
  3. a ^= b;
复制代码
沙发
发表于 2015-2-3 04:53:48 | 只看该作者
e ...看不懂这个!“^”
板凳
 楼主| 发表于 2015-2-10 01:18:23 | 只看该作者
mayue123 发表于 2015-2-3 04:53
e ...看不懂这个!“^”

看不懂无所谓,知道这东西是个无聊的段子就行了
地板
发表于 2015-2-24 13:56:37 | 只看该作者
看不眀白啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表