若有定义int a=1,b=2,c=3;则执行表达式(a=b+c)||(++b)后a,b,c的值

我想要解题的过程,那个式子怎么看

我用
gcc
3.4.2

vc
6.0
编译后的结果都是5,2,3
因为
||
号,只执行了前面的部分,a=b+c
已经返回了结果“真”,所以没有执行
++b
部分的。
很可能是编译器进行了优化的结果。
不知道你用的编译器是什么。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-11
1。
b+c=5

5
赋值

a
2.
a
=5
为真
||
短路或
所以不执行
++b
b
依然为2
所以

a=5
b=2
c=3;
相似回答