C(15)逻辑运算符分析

    技术2022-07-17  97

    文章目录

    1. 逻辑与和逻辑或2. 非运算符3. 总结

    1. 逻辑与和逻辑或

    || 从左向右开始计算,当遇到为真的条件时停止计算,整个表示式为真,所有条件为假时才为假&& 从左向右开始计算,当遇到为假的条件时停止计算,整个表达式为假,所有条件为真时表达式才为真逻辑表达式中,&&比|| 具有更高的优先级,++i || ++j && ++k ==> (++i) || (++j && ++k)

    EG:

    #include <stdio.h> int g = 0; int f() { printf("In f()...\n"); return g++; } int main() { if( g || f() && f() ) { printf("In if statement: %d\n", g); } printf("In main(): %d\n", g); // 这行语句被打印,结果为1 return 0; }

    2. 非运算符

    C语言中的逻辑非 ! 只认识0,只知道看见了0就返回1,因此当其碰见的值不是0的时候,就返回0

    EG:

    #include <stdio.h> int main() { printf("%d\n", !0); // 1 printf("%d\n", !1); // 0 printf("%d\n", !100); // 0 printf("%d\n", !-1000); // 0 return 0; }

    3. 总结

    程序中的逻辑表达式遵从短路规则在&& 和 || 混合运算时,整个表达式被看作 || 表达式,仓左向右计算 && 表达式,最后计算 || 表达式逻辑非 ! 运算符只认识0,碰见0就返回1,否则返回0
    Processed: 0.009, SQL: 10