#include <stdio.h>int main(){int a=0,b=0,c=0;if(a++>0&&b++>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}
1 回答
已采纳
fireup
TA贡献8条经验 获得超31个赞
这叫做短路现象,&&的左右操作数都为真时才返回真,如果第一个操作数返回true,它会继续判断第二个操作数,而如果第一个就返回false,那么无论第二个为true还是false,结果都是false,所以,C语言这个时候会偷懒,就不再判断第二个了,所以b++不会执行,另外,++在后,会先判断,再执行++运算
- 1 回答
- 0 关注
- 1350 浏览
添加回答
举报
0/150
提交
取消