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