C语言这道题为什么选c?

如题所述

先执行++a,a=2,表达式++a||++b&&++c为真,值为1,++b&&++c不再执行运算。
b、c的值不变,b仍然是2。
注意:虽然&&的优先级高于||,但并不是说先执行++b&&++c,只是++b&&++c是一个表达式,总体还是表达式1||表达式2,而不是先运算++b&&++c。在进行或运算时,从左至右,若左边的表达式值为0,才判断右边表达式的值。对于本题,++a的值为2,表达式为真,值为1,就不再进行表达式2的运算了。
选C。追问

还是不是很明白&&比||的优先级高,为什么不先执行++b&&++c

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-20
++作前缀符号并没有改变b的值,作后缀才使b+1。本回答被网友采纳