C語言邏輯運算符的分析
在高中數學中,我們學過邏輯運算,例如p為真命題,q就假命題,那麼「p且q」為假,「p或q」為真,「非q」為真。
在C語言中,也有類似的邏輯運算:
邏輯運算的值
邏輯運算的值也為「真」和「假」兩種,用「1」和「0 」來表示,其求值規則如下。
1) 與運算(&&)
參與運算的兩個量都為真時,結果才為真,否則為假。例如:
(5>0) && (4>2)
由於5>0為真,4>2也為真,相與的結果也為真。
2) 或運算(||)
參與運算的兩個量只要有一個為真,結果就為真。 兩個量都為假時,結果為假。例如:
(5>0) || (5>8)
由於5>0為真,相或的結果也就為真。
3) 非運算(!)
參與運算量為真時,結果為假;參與運算量為假時,結果為真。例如:
的結果為假。
注意:在邏輯運算中,0 為假,非 0 值都是真,例如
5
為真,
2*3
為真。對於表達式
(3+5)&&(9>3)
,由於3+5=8為真,9>3為真,所以結果也為真。
優先順序
邏輯運算符和其它運算符優先順序從低到高依次為:賦值運算符(=)
「&&」和「||」低於關係運算符,「!」高於算術運算符。
按照運算符的優先順序可以得出:
a>b && c>d 等價於 (a>b)&&(c>d)
!b==c||d
a+b>c&&x+yc)&&((x+y)
另外,邏輯表達式也可以嵌套使用,例如
a>b && b || 9>c
,
a || c>d && !p
。
邏輯運算符舉例:
#include
int main(){
char c='k';
int i=1,j=2,k=3;
float x=3e+5,y=0.85;
printf( "%d,%d
", !x*!y, !!!x );
printf( "%d,%d
", x||i&&j-3, i
printf( "%d,%d
", i==5&&c&&(j=8), x+y||i+j+k );
return 0;
}
運行結果:
0,0
1,0
0,1
本例中!x和!y分別為0,!x*!y也為0,故其輸出值為0。由於x為非0,故!!!x的邏輯值為0。對x|| i && j-3式,先計算j-3的值為非0,再求i && j-3的邏輯值為1,故x||i&&j-3的邏輯值為 1。對i
零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦


※C語言的巔峰如何到達
※乾貨 嵌入式C語言編程小知識總結
※看看200萬網友怎麼評論:程序員工資為什麼這麼高?
※C語言新案例-迷宮製作
※web前端:炫酷的火熱螺旋
TAG:IT技術java交流 |
※Python入門教程——邏輯運算符、身份運算符和成員運算符
※RA字根邏輯技巧
※如何巧用邏輯分析儀分析數字信號?
※知識+邏輯+推理
※GMAT邏輯推理之引言以及類比/枚舉推理
※IBM AI與人類辯論賽全程:機器語義、邏輯分析能力突飛猛進
※汪聯輝&樊春海&范曲立:利用智能等離子納米感測器實現microRNA的單分子分析與邏輯運算
※邏輯思辨:關於「邏輯派」與邏輯、辯證法的互懟
※邏輯測試:6個會打破你的邏輯視野的謎語
※景觀設計的邏輯思維——演講整理稿
※毫無邏輯的影評
※編輯的風景與邏輯
※結構性貨幣政策的理論基礎與演進邏輯
※一文看懂DGames的技術架構和業務邏輯!
※當代邏輯、傳統邏輯和"普通人需要的邏輯"
※哲學達人對史鐵生作品中的語言邏輯分析,太精闢了!
※利用邏輯回歸分析設計手性晶體材料
※「區塊鏈語言」重構財富管理邏輯
※古代的邏輯是「文學化」的邏輯
※淺談BAJ金融業務拆分的邏輯