1. 程式人生 > >C語言筆記 第十五課 邏輯運算子分析

C語言筆記 第十五課 邏輯運算子分析

第十五課 邏輯運算子分析

邏輯運算子&&,||和!真的很簡單嗎?

下面的程式執行結束後,i,j,k的值分別是多少?
int i = 0;
int i = 0;
int i = 0;
++i || ++j && ++
結果:
i = 1
j = 0
k = 0
15-1 初探邏輯運算子

程式中的短路

||從左向右開始計算:
當遇到為真的條件時停止計算,整個表示式為真
所有條件為假時表示式才為假
&&從左向右開始計算:
當遇到為假的條件時停止計算,整個表示式為假
所有條件為真時表示式才為真

邏輯運算子分析

邏輯表示式中,&&比||具有更高的優先順序
在這裡插入圖片描述


在&&和||混合運算時,整個表示式被看做||表示式,編譯器從左向右開始計算&&表示式,當某個&&表示式的值為真是,停止計算,整個表示式的值為真。
15-2 程式中的短路規則

C語言中的邏輯非“!”只認得0,是0返回1,不是0,返回0。

15-3 邏輯非運算子的使用
小結:
程式中的邏輯表示式遵從短路規則
在&&與||混合運算時:
整個表示式被看做||表示式
從左向右先計算&&表示式
最後計算||表示式
邏輯非!運算子只認得0
碰見0返回1,否則統統返回0
只有0才代表假,其餘的所有值均代表真