需要提前掌握的知识点
逻辑与:&&
逻辑与运算符的两个逻辑运算对象只要有一个为“假”,那么结果就是“假”;两个都为“真”,结果才为“真”。
逻辑或:||
逻辑或运算符的两个逻辑运算对象只要有一个为“真”,那么结果就是“真”;两个都为“假”,结果才为“假”
短路用算的特点:就算是一个变量,也可以作为一个表达式,大大缩短了代码长度,在大型的项目里经常能看到。
逻辑与&&
#include <stdio.h>
int main(){
int i=0;
i&&printf("Bro,you are 21 years old !\n");
return 0;
}
这段代码里,当i=0时,因为i的值为0,所以这个条件判断为假,不会执行printf函数。
如果不用短路运算而是if,那代码如下
#include <stdio.h>
int main(){
int i=0;
if(i)
{
printf("Bro,you are 21 years old!");
}
return 0;
}
也是无法运行的。
那究竟是为什么呢?因为在C语言中,0被视为逻辑假(false),而任何非0值被视为逻辑真(true),这是由于硬件特性、编码便捷性、二进制系统以及逻辑一致性的考虑,使C语言更加简洁。
好吧,说人话,0是false,1是true,是C语言出生时就带有的特性。
因此,正确代码如下
当i为假时,不会执逻辑与后的表达式,被称为短路运算。
逻辑或||
当逻辑与为真时,那么不需要再计算第2个操作数。
只有当i=0时,逻辑与为假时,才会执行后面的数,如图: