&& 和 || 属于逻辑运算符,&&和||都有一个短路特性,先简述如下:
一:&&的短路特性
要使(表达式1)&&(表达式2) 输出结果为真,就要同时满足表达式1和表达式2都要为真。&&的短路特性意思为如果在运算过程中表达式1结果为假,这时输出结果一定为假,所以表达式2不在进行运算。因为结果不可能为真,这就是&&的短路特性。
二:||的短路特性
要使(表达式1)||(表达式2) 输出结果为真,只需要满足表达式1和表达式2有一个为真即可。||的短路特性意思为如果在运算过程中表达式1结果为真,这时输出结果一定为真,所以表达式2不在进行运算。因为结果不可能为假,这就是||的短路特性。如果表达式1为假才进行表达式2的运算。
三:代码
#include <stdio.h>
int main()
{
//验证短路特性
int i = 0;
int j = 0;
//验证&&的短路特性
if (i++ && j++)
{
printf("验证&&的短路特性:i=%d j=%d \n", i, j);
}
else
{
printf("验证&&的短路特性:i=%d j=%d \n", i, j);
}
//验证||的短路特性
if (i++ || j++)
{
printf("验证||的短路特性:i=%d j=%d \n", i, j);
}
getchar();
return 0;
}