永发信息网

这题为什么选C不选A?这里的b++是没有自增的,不然就满足第二个条件了。所以b的值最后还是2,而不

答案:4  悬赏:20  手机版
解决时间 2021-02-05 16:00
  • 提问者网友:玫瑰园
  • 2021-02-04 15:58
这题为什么选C不选A?这里的b++是没有自增的,不然就满足第二个条件了。所以b的值最后还是2,而不是3。如果选C请大神告诉我为什么。
最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-02-04 17:24
b++的确等于2,但执行下一步时,b值由于前面的后自增加1变为3了,所以是1 3 3
全部回答
  • 1楼网友:忘川信使
  • 2021-02-04 20:50
结果是5. 编译器是这样分析这个代码的: 在最高层次上它是一个三项表达式。 所以会先计算前面的条件表达式(a=b++) 这个条件表达式又可以等价为a=b和b++,也就是说执行完之后a的值变成了4,而b的值变成了5。整个复合表达式的值是赋值语句的结果4。 条件表达式的结果非零表示条件成立,于是就去计算问号后面的表达式(++a)的值来作为整个表达式的值,++放在前面表示先做递增操作再计算表达式的值,于是a被加一变成了5,而整个表达式的值也是5。 最后那个b++表达式因为条件表达式的结果成立,所以不会得到执行。 于是,整个表达式执行完后a和b的值都是5。 还有,你的三元表达式写错了,最后一个分隔符应该是冒号而不是分号。
  • 2楼网友:第幾種人
  • 2021-02-04 19:56
因为或语句判断了第一个为真,就结束了,因为一个为真全部为真,c就不自减了
  • 3楼网友:罪歌
  • 2021-02-04 18:59
b 先赋值 后++,第一个条件进, b = 3, 然后 b!=2 满足,后面的c--不执行。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯