什么是短路现象?
其实很简单,内容也就一点点,看看!!!
请看下面的两种情况
(1)
int a, b, c;
a = 1;b = 2;c = 3;
if(a && b && c){
printf("俺没有短路!\n");
}
else
{
printf("俺短路了!\n");
}
if语句只会在a,b,c三个都为真(就是)时才会执行第一条打印语句。
如果a不为零就会执行扫描b,a与b都不为0才会扫描c。
int a, b, c;
a = 0;b = 2;c = 3;
if(a && b && c){
printf("俺没有短路!\n");
}
else
{
printf("俺短路了!\n");
}
这个时候a = 0,所以就不会判断b与c,这就是所谓的短路,也就是说短路就是不判断后面的条件了。
再举个例子
int a, b, c;
a = 0;b = 2;c = 3;
if(a || b || c){
printf("俺没有短路!\n");
}
else
{
printf("俺短路了!\n");
}
这个时候a为假,但是由于是||,所以会判断b条件,一看,唉,这b不是真嘛,此时就不需要判断c了,不判断c的这个行为就叫短路,理解了嘛?