这题为什么选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--不执行。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯