逻辑运算符
1.或。||
格式:表达式1 || 表达式2
规则:有一个为真,结果就是真;全假就是假的
#include <stdio.h>
int main(){
printf("%d\n", 1 > 0); // 1
printf("%d\n", 1 < 0); // 0
printf("%d\n", 1 < 0 || 1 > 0); // 1
printf("%d\n", 3 > 2 || 1 > 0); //
printf("%d\n", 3 < 2 || 1 > 3); //
// 真:非零即真
printf("%d\n", 1 || 2); // 1
printf("%d\n", 1 || 1 > 3); // 1
printf("%d\n", 0 || 1 > 3); // 0
printf("%d\n", 1.2 || 5.6); // 1
}
2.与。&&
格式:表达式1 && 表达式2
规则:有一个为假,结果就为假;全真就是真的
#include <stdio.h>
int main(){
printf("%d\n", 1 > 2 && 2 > 3 && 4 > 5); //0
printf("%d\n", 2 > 1 && 2 > 3 && 4 > 5); //1
}
3.非。!
!取反
#include <stdio.h>
int main(){
// !取反
printf("%d\n", !(1 > 0));// 0
printf("%d\n", !0);// 1
printf("%d\n", !2);// 0
printf("%d\n", !!2);// 1
printf("%d\n", !0.01);// 0
}
短路
&&:如果左边为假,则右边不求值
int i = 0;
2 > 3 && (i = 1);
printf("%d\n", i); //0
||:如果左边为真,则右边不求值
int j = 0;
3 > 2 || (j = 1);
printf("%d\n", j); //0
}