我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 帮我看一下这个句子 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

datuz



性别: 帅哥 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1425
威望: 3
浮云: 399
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-10-03

5come5帮你背单词 [ horse /ho:s/ n. 马 ]


帮我看一下这个句子

int x=0,y=0,z=0;
++x||++y||++z;
为什么输出只显示X加了1,其它的为什么不加啊
顶端 Posted: 2006-10-25 13:16 | [楼 主]
幻蓝零度



性别: 帅哥 状态: 该用户目前不在线
头衔: The Busby`s smile
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 8137
威望: 2
浮云: 15916
在线等级:
注册时间: 2006-08-31
最后登陆: 2012-05-22

5come5帮你背单词 [ applicant /'æplikənt/ n. 申请人 ]


1楼回答完全正确
要想表达式全部执行将||换成&&即可
和2<x<3永远为真道理完全一样
顶端 Posted: 2006-10-25 15:14 | [1 楼]
幻蓝零度



性别: 帅哥 状态: 该用户目前不在线
头衔: The Busby`s smile
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 8137
威望: 2
浮云: 15916
在线等级:
注册时间: 2006-08-31
最后登陆: 2012-05-22

5come5帮你背单词 [ topic /'topik/ n. 话题,主题 ]


Quote:
引用第7楼剑云于2006-10-25 18:25发表的:

我说一下.上面几位的有点偏差哈
这里输出的1不是x加了1,而是++x||++y||++z这个表达式的值,表达是的值是真的,所以为1,实际上x,y,z都是加了的,不信可以单独输出x,y,z的值,肯定都是1


C++是短路求值,++X经过BOOL将计算为真,后面的就不用计算了

C++首先运算用“&&”和“||”连接的表达式左边的表达式,当有信息能够判定整个表达式的最终值时,就不会去计算余下的表达式。 --short-circuit evaluation

另外++X为true的原因是因为编译器将所有非0按真处理,0按假处理
顶端 Posted: 2006-10-25 21:00 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.010599(s) query 6, Time now is:11-24 02:02, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号