1——或逻辑短路
#include <stdio.h>
int main()
{
}
输出的结果为1,2.为什么呢,因为a<b,m=1,这个“或”逻辑就被“短路”掉了,后面的语句就没被执行,所以n还是等于原先的2
2——与逻辑短路
#include <stdio.h>
int main()
{
}
输出的结果为0,2。因为a>b为0,m=0,整个“与”逻辑判断就为“假”,所以后面的“c>d”就被短路掉了,所以n还是等于原先的2
又如:
#include <stdio.h>
int main()
{
int a = -2,b = 0;
while(a++ && ++b);
printf("a = %d,b = %d\n",a,b);
}
结果为 a=1, b=2
又如:
#include <stdio.h>
int main()
{
int a = -2,b = 0;
while(a++ && ++b);
printf("a = %d,b = %d\n",a,b);
}
结果为 a=1, b=2
总结:“或”逻辑前面为1,“与”逻辑前面为0就会发生短路