因为a,b,c都等于0,a++是先运算后自增,所以a++与++b或c++等于0与++b或c++
又因为逻辑运算短路(也就是当0与任何表达式时,将不进行后面的表达式计算,直接得出结果为0,
当1或任何表达式时,将不进行后面的表达式计算,直接得出结果为1)所以++b被跳过,没有执行,
因此a++与++b或c++的表达式的值等于0与++b或0等于0,因为a++和c++执行运算后自增1,
所以执行a++与++b或c++表达式后a=1,c=1,++b因为没有被执行所以b仍然为初始值0.
验证程序如下
追问++b那里跳过那个没懂
追答因为0与0=0,0与1=0,所以如果A=0,A与B,不管B是0还是1,结果都为0.
因此当0与B时,程序会不执行B的运算(跳过B)
同样的,当A=1,A或B时,因为1或0=1,1或1=1,
所以程序会同样不执行B的运算(跳过B).