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

我想要解题的过程,那个式子怎么看
2024年11月15日 08:05
有2个网友回答
网友(1):

我用
gcc
3.4.2

vc
6.0
编译后的结果都是5,2,3
因为
||
号,只执行了前面的部分,a=b+c
已经返回了结果“真”,所以没有执行
++b
部分的裂清型。
很可能是编译器进行了优化的结果。
不知正梁道你用的编译器是什么。肆猜

网友(2):

1。
b+c=5

5
赋值

a
2.
a
=5
为真
||
短路或
所以不轿正咐执行
++b
b
依清顷然为2
所以闭纯

a=5
b=2
c=3;