逻辑运算符

95 阅读1分钟

逻辑运算符, 结果就是: 真 (1, 正确), 假(0, 错误)

  1. 或。 || 格式 : 表达式1 || 表达式2 规则 : 有一个为真,结果就全是真; 全假就是假的

  2. 与. &&

  3. 非。 !

一:

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

结果如下:

image.png

真: 非零即真

#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
}

结果如下:

image.png

二:

// 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
         }

效果如下:

image.png

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

#include <stdio.h>

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

效果如下:

image.png

三:

#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