逻辑运算符

85 阅读1分钟

逻辑运算符

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
}        

image.png

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
}

image.png 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 
	
}

image.png

短路

&&:如果左边为假,则右边不求值

    int i = 0;
	2 > 3 && (i = 1);
	printf("%d\n", i); //0

image.png

||:如果左边为真,则右边不求值

            
    int j = 0;
    3 > 2 || (j = 1);
    printf("%d\n", j); //0	
}

image.png