第03天C语言(11):逻辑运算符

一、逻辑运算符
/*
逻辑运算符的返回值 只有两种 : 要么真要么假,要么是1(真),要么是假(0)

&& (与运算) 逻辑非结合性 : 从左至右
格式 : 表达式1 && 表达式2
只有表达式1 和 表达式都为 真 的时候, 逻辑与表达式才返回真
如果表达式1 或者 表达式2 中有一个是假, 那么逻辑 与 表达式 返回的结果都是 假
int result = 10 > 8 && 5 > 3; // 1 && 1 = 1;
int result = 10 > 8 && 5 > 8; // 1 && 0 = 0;
口诀 : 一假则假
逻辑与有一个特点 : 一假则假, 所以前面的表达式的值为假, 那么后面的表达式没必要参与运算   【int a = 10; int result = 10 > 18 && a++ > 5;】 0 && 1 = 0 a=10
判断一个范围 (3<a<5); a= 10; 正确的C语言写法 (a>3) && (a<5);


|| (或运算) 逻辑非结合性 : 从左至右
格式 : 表达式1 !! 表达式2
只要表达式1 或者 表达式2 中有一个是 真的,逻辑或表达式返回的值 就是真
只要表达式1 和 表达式2的值都是假, 逻辑或的值才是假
int result = 10 > 8 || 5 > 8;  // 1 || 0 = 1
口诀 : 一真则真
【int a = 10;int result = 10 > 18 || ++a > 5;】 0||1 = 1 a= 11
逻辑与 和 逻辑或 的这个特点,称之为逻辑运算符的短路


! (非运算) 逻辑非结合性 : 从右至左
如果表达式是真, 就返回假
如果表达式是假, 就返回真
【int result = !1;】 0
取反
*/


//注意点:由于C语言规定 : 任何数值都有真假性, 非0即真, 所有逻辑运算符 可以直接与 数值进行计算
//
二、代码
#include <stdio.h>
int main()
{
#pragma 1.与
    //              1 && 1
//    int result = 10 > 8 && 5 > 8;
//    printf("result = %i\n",result);
#pragma 2.或
//    int result = 10 > 8 || 5 > 8;
//        printf("result = %i\n",result);
#pragma 3.非
//    int result = !(10 > 18); // !0;
//        printf("result = %i\n",result);

    /*
//    int result = 0 && 11;
//    int result = 0 || 11;
    int result = !1;
    printf("result = %i\n",result);
     */
    
//    int result = 10 > 18 && 9 > 5;
//    printf("result = %i\n",result);
//    int a = 10;
//    int result = 10 > 18 && a++ > 5;
//    printf("result = %i,a = %i\n",result,a);
    
    // 由于逻辑或有一个特点 : 一真则真
    int a = 10;
    int result = 10 > 18 || ++a > 5;
    printf("result = %i,a = %i\n",result,a);


    return 0;
}

推荐阅读更多精彩内容