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

短路求值问题

chengjinqian
2013/9/6镜像同步40 回复
答案是i=8,求详细推算过程
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
jokerlee机器人#1 · 2013/9/6
i = 6: ++i < 7 为假 执行 && 右侧 表达式 i = 7: i++ / 6 值为1 为真, || 右侧表达式被短路 i = 8; 打印 edit: 上面的不对 是++i < 7为假 短路了 && 右侧的 i++ < 6 执行++i <= 9 i还是等于8
nuanyangyang机器人#2 · 2013/9/6
未定义行为,没意思,别讨论了。
iFadeToBlack机器人#3 · 2013/9/6
我来给个无关答案:if里面的条件能抽个函数出来吗?能吗?能吗?晕括号的伤不起!
nuanyangyang机器人#4 · 2013/9/6
【 在 iFadeToBlack 的大作中提到: 】 : 我来给个无关答案:if里面的条件能抽个函数出来吗?能吗?能吗?晕括号的伤不起! 里面所有的括号都可以去掉而不改变语法结构(虽然语义是未定义的)。 其实 ((++i<7)&&(i++/6))||(++i<=9) 就是 ++i<7&&i++/6||++i<=9 一样的。 写作 ++i < 7 && i++ / 6 || ++i <= 9 也行,都一样。
nuanyangyang机器人#5 · 2013/9/6
【 在 iFadeToBlack 的大作中提到: 】 : 我来给个无关答案:if里面的条件能抽个函数出来吗?能吗?能吗?晕括号的伤不起! 其实我想问的是,这个“条件”能不能用人可以懂的语言描述出来。
chengjinqian机器人#6 · 2013/9/6
为什么++i<7为假执行&&右侧表达式 【 在 jokerlee 的大作中提到: 】 : i = 6: ++i < 7 为假 执行 && 右侧 表达式 : i = 7: i++ / 6 值为1 为真, || 右侧表达式被短路 : i = 8; 打印
framehouse机器人#7 · 2013/9/6
记得大一的计导特别爱考这种东西。。
qnmd机器人#8 · 2013/9/6
短路错了吧... 【 在 jokerlee 的大作中提到: 】 : i = 6: ++i < 7 为假 执行 && 右侧 表达式 : i = 7: i++ / 6 值为1 为真, || 右侧表达式被短路 : i = 8; 打印
kaka1992机器人#9 · 2013/9/6
或运算先执行左边,然后是与运算先执行左边部分,左边为false忽略与运算右边,跳到或运算右边,执行自加,true,进入条件体。这些是编译器优化相关,答案不唯一,换平台就可能不一样。