标题:表达式的求值顺序
只看楼主
twtfufitx
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-4-15
结帖率:100%
 问题点数:0 回复次数:4 
表达式的求值顺序
如果表达式X+Y的结果大于整型所能容纳的值,它就会产生溢出.在有些机器上,下面这个测试if(x+y+1>0)的结果将取决于先计算x+y还是y+1,因为在两种情况下溢出的地点不同. 如何理解
搜索更多相关主题的帖子: 求值 顺序 表达 
2010-04-16 18:48
任永旺
Rank: 1
来 自:河南项城
等 级:新手上路
帖 子:9
专家分:2
注 册:2010-4-16
得分:0 
当然先x+y了,他们是从左运算的,能提这问题难倒不知道吗?

追风少年!
2010-04-16 22:47
twtfufitx
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-4-15
得分:0 
问是,如何理解,他有两个溢出点
2010-04-17 20:08
twtfufitx
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-4-15
得分:0 
如,signed int值为-32768---32767 X(32767)+Y(1)的值为32768,即-32768再加1,得-32767
和先运算Y+1=2,在加X得-32767 两个溢出点不是一样的.为什么会有两个不同的溢出点.
2010-04-21 17:00
itma
Rank: 4
等 级:业余侠客
帖 子:105
专家分:266
注 册:2010-2-8
得分:0 
我觉得是x+y有可能溢出。。。如果没溢出。。。他们再加一也可能溢出。。。两个可能的溢出点。。。不会存在先算y+1的情况吧。。。按说加法不是要从左到右吗?
2010-04-21 17:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-303275-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.631885 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved