一、邏輯運算子:
包括:1。&&邏輯與 2。||邏輯或 3。!邏輯非
邏輯運算子用於對包含關係運算子的表示式進行合併或取非
對於使用邏輯運算子的表示式,返回0表示「假」,返回1表示「真」。關於邏輯運算子的解釋
請注意:任何使用兩個字元做符號的運算子,兩字元之間不應有空格,即將==寫成= =是錯誤的。
假設乙個程式在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關係運算子和邏輯運算子「與」來寫這個
條件的**。用&&表示「與」運算子,該條件**如下:
(a<10) && (b==7);
類似地,「或」是用於檢查兩個條件中是否有乙個為真的運算子。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程式需執行某些操作,則條件**如下:
(a<10) || (b==7);
第三個邏輯運算子「非」用乙個感嘆號(!)表示。這個運算子對表示式的真值取反。例如,如果變數s小於10,程式
程式需執行某些操作,則條件**如下:
(s<10)
或(!(s>=10)) //s不大於等於10
關係運算子和邏輯運算子的優先順序一般都低於算術運算子。例如,5>4+3的計算與5>(4+3)運算子是一樣的,即
先計算4+3,再執行關係運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出 0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
二、位運算子:
包括:1。&位與符 2。|位或符 3。^位異或符 4。~位取反符
以運算元12為例。位運算子將數字12視為1100。位運算子將運算元視為位而不是數值。數值
可以是任意進製的:十進位制、八進位制或十六進製制。位運算子則將運算元轉化為二進位制,並相應地返回1或0。
位運算子將數字視為二進位制值,並按位進行相應運算,運算完成後再重新轉換為數字。例如:
表示式10&15表示(1010 & 1111),它將返回表示1010的值10。因為真真得真,或者是11得1,同位全是1結果也是1
表示式10|15表示(1010 | 1111),它將返回表示1111的值15。假假得假。全零得零。
表示式10^15表示(1010 ^ 1111), 它將返回表示0101的值5。此時是同性相斥,相同的就為假。
表示式~10表示(~1010),它將返回表示0101的值 -11。此號好理解,按位取反
三、三目條件運算子:
表示式為:(表示式1?表示式2:表示式3) 先求解表示式1,
若其值為真(非0)則將表示式2的值作為整個表示式的取值, 否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。 例如:
1、max=((a>b)?a:b)
就是將a和b二者中較大的乙個賦給max。 2、min=(a=10 && b-->20 ? a : b
等價於:(a++>=10 && b-->20) ? a : b ⑶ x=((3+a>5 )? 100 : 200)
等價於:x= (( 3+a>5 ) ? 100 : 200 )
結合性
條件運算子具有右結合性
當乙個表示式中出現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。 例如:
(ww 邏輯與 當且僅當左右兩個關係表示式均為true時返回true,否則返回false。邏輯或 當且僅當左右兩個關係表示式均為false時返回true,否則返回true。邏輯非!單目運算子,對關係表示式取反。與 兩個運算元二進位制形式的對應位中均為1時,相應的位返回1,否則返回0.例如128 129,返回... 1.運算子 用於對邏輯值的取反運算。當邏輯值為true時,經過取反變為false 當邏輯值為false時取反成true。2.運算子 運算子 用於對邏輯值進行異或運算。當運算兩側同時為true或false時,運算結果為false,否則為true。3.運算子 和 運算子 和 均用於邏輯與運算。當兩側同時... 邏輯與 邏輯或 邏輯非 短路與 短路或 邏輯異或 aba ba ba ba b a a true true true true true true false false true false false false true true false true false true false fal...邏輯運算子和位運算子
邏輯運算子與位運算子
邏輯運算子 位運算子與三元運算子