根据C90和C99的标准规定。
编译器的判定为:
表达式中如果存在
逻辑运算符,将会是以下的执行过程(以你问题中的表达式为例):
1,&&的情况下,判定&&左边的值是否为真(1),若为真,则继续判定;若为假则直接返回“假”这个结果;
2,||的情况下,需要对表达进行完全解释判定才能得到具体结果。
3,前++和后++。对于前++,在表达式的等号运算符之前就完成了运算结果;而对于后++,则本次运算会持续到等号运算符之后完成,也就是说从下一跳有效语句开始才会完成计算。比如:
a=1;
b=2;
--a&&b--; //此时,a的值已经为0,而b的值还是2
综上,你的代码得到了上述的结果。
输出:a=0 b=1 c=0本回答被提问者采纳