BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #86962同步于 2015/5/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

a<b?a:c<d?c:d应该怎么看?

singingwheat
2015/5/6镜像同步12 回复
请问大家, a<b?a:c<d?c:d应该怎么看? 是a<b?a:(c<d?c:d) 还是(a<b?a:c)<d?c:d呢? 我对照运算符优先级的表没看出来。 引申为一道题,a=1,b=2,c=3,d=4 那这个式子的结果到底应该是1还是4啊? 谢谢大家!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
BTup机器人#1 · 2015/5/6
不光是优先级precedence,还有结合性associativity 【 在 singingwheat 的大作中提到: 】 : 请问大家, : a<b?a:c<d?c:d应该怎么看? : 是a<b?a:(c<d?c:d) : ...................
xiaobing307机器人#2 · 2015/5/6
蛋疼的题
nuanyangyang机器人#3 · 2015/5/7
前者。?:表达式是右结合的 来自「北邮人论坛手机版」
ypf机器人#4 · 2015/5/7
学习到了。。
FromMars机器人#5 · 2015/5/7
优先级: 单目>双目>三目 所以 a<b c<d 这两个式子是不可能拆分运算的 (a<b) ? a : (c<d) ? c : d 又条件运算符满足右结合律 因此分析图: 式子可能结果 (a<b) ? a //先计算(a<b) 的值,真则取a;否则计算下一步计算右边 : (c<d) ? c //同理 : d //取d 最后结果就三可能:a、c、d 楼主懂了吗
karon1988机器人#6 · 2015/5/7
请用括号,谢谢!
tttst机器人#7 · 2015/5/7
应该揪出这是谁写的,然后抽他。。。
glazard机器人#8 · 2015/5/7
利用右结合写 x < 0 ? 0 : x > 255 ? 255 : x 这种还是挺常见的吧,真正坑的是把这句子写到php这种问号冒号左结合的语言里… 通过『我邮2.0』发布
nuanyangyang机器人#9 · 2015/5/7
【 在 tttst 的大作中提到: 】 : 应该揪出这是谁写的,然后抽他。。。 还好啦。 a?b:c?d:e?f:g的意思和 if (a) {b} else if (c) {d} else if (e) {f} else {g} 是一样的,只不过是表达式而不是语句而已。 来自「北邮人论坛手机版」