關於邏輯運算子的理解

2021-07-29 12:11:03 字數 713 閱讀 7898

int i=0;

int n=0;

1 && n++ || i++;

printf("i:%d\n", i);

printf("n:%d\n", n);

0 && n++ || i++;

printf("i:%d\n", i);

printf("n:%d\n", n);

return 0;

在網上看到這樣一段**。執行結果如下

輸出:i:1

n:1i:2

n:1經過仔細思量,終於理解,現將其記錄下來以備將來翻閱

&& 和 ||都是左側法則,從左側向右側執行。而且&&的優先順序比||高,因此執行邏輯如下:

第乙個邏輯表示式「1 && n++ || i++;」中,先判斷 1&&n++,因為1為真,所以需要判斷n++,因為n的初值是0,所以這個判斷的結果是0,(執行之後,n的值也變成了1),接下來表示式變成了「0||i++」,因為左側是0,所以要判斷右側,因此就會執行i++,而i初值是0,所以次表示式的結果為0,(執行之後,i的值也變成了1),因此就有了前兩個輸出。

第二個邏輯表示式「0 && n++ || i++;」,先判斷「0&&n++」,因為有0存在,所以此表示式不再執行n++,直接判定結果為0,因此n依然是1。接下來判斷後半段,此時的表示式已經變成「0||i++」,因為前面是0,所以會執行i++,因為i在第乙個表示式中已經變成1了,所以這裡是就會是2。因此就有了後兩個的輸出。

關於邏輯運算子

算術運算 加 減 乘 除 取餘 其中取餘顯示的是餘數,注意除數不能為0,計算機運算與數 算不同,如1int main 與或非邏輯運算子常用於判斷語句或迴圈語句,與 格式 表示式 表示式,或 格式 表示式 表示式,非!格式 表示式,三者的運算優先順序由高到低依次為!以下程式執行結果為0,1,0。inc...

邏輯運算子and or 的理解

python 做邏輯運算的時候,我有一些有趣的理解。例如 a true b false c true d a or b and c那麼d 在中學學習排列組合的時候,就有過這樣的方法 分步驟用乘法,分類別用加法。所以可以把邏輯預算中的and理解為乘法,or理解為加法。因為 true的值為1,false...

邏輯運算子( , )

操作!是的 運算子不執行布林操作,有只有乙個運算元,位於其權利,和唯一,它確實是逆是它的價值,生產假如果真實,真實的,如果其運算元其運算元為false。基本上,它返回布林值,評價其運算元相反。例如 1 2 3 4 5 5 evaluates to false because the expressi...