15_邏輯運(yùn)算符分析

關(guān)鍵詞:&&、||、!

1. 初探邏輯運(yùn)算符

#include <stdio.h>

int main()
{
    int i = 0;
    int j = 0;
    int k = 0;
    
    ++i || ++j && ++k;
    
    printf("i = %d\n", i);
    printf("j = %d\n", j);
    printf("k = %d\n", k);

    return 0;
}

輸出結(jié)果:

i = 1
j = 0
k = 0

2. 邏輯運(yùn)算符分析——程序中的短路

  • ||從左向右開(kāi)始計(jì)算:
    當(dāng)遇到為的條件時(shí)停止計(jì)算,整個(gè)表達(dá)式為
    所有條件為時(shí)表達(dá)式才為假

  • &&從左向右開(kāi)始計(jì)算:
    當(dāng)遇到為的條件時(shí)停止計(jì)算,整個(gè)表達(dá)式為
    所有條件為時(shí)表達(dá)式才為真

  • 邏輯表達(dá)式中,&&||具有更高的優(yōu)先級(jí)

&&||混合運(yùn)算時(shí),整個(gè)表達(dá)式被看作||表達(dá)式(因?yàn)?code>||的優(yōu)先級(jí)低于&&,因此最后運(yùn)算||),編譯器從左向右開(kāi)始計(jì)算&&表達(dá)式,當(dāng)某個(gè)&&表達(dá)式的值為真時(shí),停止計(jì)算,整個(gè)表達(dá)式值為真。

#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);

    return 0;
}

輸出結(jié)果:

In f()...
In main(): 1

3. !邏輯非分析

C語(yǔ)言中的邏輯非!只認(rèn)識(shí)0,只知道見(jiàn)了0就返回1.因此當(dāng)其遇見(jiàn)的值不是0時(shí),其結(jié)果為0.

4. 邏輯非運(yùn)算符的使用

#include <stdio.h>

int main()
{
    printf("%d\n", !0);
    printf("%d\n", !1);
    printf("%d\n", !100);
    printf("%d\n", !-1000);

    return 0;
}

輸出結(jié)果:

1
0
0
0

5. 小結(jié)

  • 程序中的邏輯表達(dá)式遵循短路規(guī)則
  • &&||混合運(yùn)算時(shí):
    整個(gè)表達(dá)式被看作||表達(dá)式
    從左向右先計(jì)算&&表達(dá)式
    最后計(jì)算||表達(dá)式
  • 邏輯非!運(yùn)算符只認(rèn)得0:遇見(jiàn)0返回1,否則統(tǒng)統(tǒng)返回0

聲明:此文章為本人在學(xué)習(xí)狄泰軟件學(xué)院《C語(yǔ)言深度解析》所做的筆記,文章中包含狄泰軟件資料內(nèi)容一切版權(quán)歸狄泰軟件所有!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,569評(píng)論 0 13
  • 運(yùn)算符是處理數(shù)據(jù)的基本方法,用來(lái)從現(xiàn)有的值得到新的值。JavaScript 提供了多種運(yùn)算符,本章逐一介紹這些運(yùn)算...
    許先生__閱讀 712評(píng)論 0 3
  • 本章將會(huì)介紹 模塊和源文件訪問(wèn)級(jí)別訪問(wèn)控制語(yǔ)法自定義類型子類常量、變量、屬性、下標(biāo)構(gòu)造器協(xié)議擴(kuò)展泛型類型別名位運(yùn)算...
    寒橋閱讀 1,004評(píng)論 0 2
  • 是可是KDJ是可是KDJ是你的內(nèi)存卡次基督教的基督教面對(duì)滿滿的小米 是可是計(jì)算機(jī)就是你說(shuō)你女的濃濃的男的女的濃濃 ...
    Jay老紅軍閱讀 146評(píng)論 0 0
  • 辦公室搬遷至臨街的一幢小樓,嘈雜了許多,但緊貼著窗沿的幾棵梧桐樹(shù)卻為枯燥的生活帶來(lái)了幾絲生動(dòng)。久坐之后,總想看看她...
    newjulie閱讀 378評(píng)論 2 2

友情鏈接更多精彩內(nèi)容