猿问

运行结果为什么是a=1,b=0

#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);

}


小画冰
浏览 1351回答 1
1回答

fireup

这叫做短路现象,&&的左右操作数都为真时才返回真,如果第一个操作数返回true,它会继续判断第二个操作数,而如果第一个就返回false,那么无论第二个为true还是false,结果都是false,所以,C语言这个时候会偷懒,就不再判断第二个了,所以b++不会执行,另外,++在后,会先判断,再执行++运算
随时随地看视频慕课网APP
我要回答