- C程序設計語言
- 魏東平 朱連章 于廣斌編著
- 676字
- 2018-12-29 14:37:47
4.2.2 邏輯表達式
用邏輯運算符將表達式連接起來的式子叫邏輯表達式,其中的表達式可以是邏輯表達式、關系表達式、算術表達式、賦值表達式等。
邏輯表達式的結果只能是“真”或“假”。邏輯表達式成立,即為“真”;邏輯表達式不成立,即為“假”。需要注意,C語言規定在判斷一個運算量是“真”或“假”時,以“0”代表假,以“非0”代表真。也就是說,只要該運算量的值不為0 就可以看做“真”。
例如,若a=10,則!a的值為“假”(用0表示);若a=10,b=15,則a&&b的值為“真”(用1表示),a||b的值為“真”,!a&&b的值為“假”。進行邏輯運算時,應注意:
① 邏輯運算符的操作數可以是任意類型,只要能表示為0或非0值即可。
例如:
'a'&&'\0' 結果為“假”
10||'a'+'b' 結果為“真”
!10結果為“假”
② 邏輯運算符&&和||運算時強調由左到右按序進行,但求解時不一定對邏輯運算符兩邊的表達式都求值,如果前面的運算已經可以確定整個表達式的計算結果,則后面的計算就不是必要的了,稱為運算截斷。
例如,對于&&運算:
表達式1 && 表達式2
當表達式1的值為“假”時,該邏輯表達式的結果肯定為“假”,表達式2的計算就被忽略了。例如,假設n1、n2、n3、n4、x、y的值分別為1、2、3、4、1、1,則求解表達式(x=n1>n2)&&(y=n3>n4)后,x的值變為0,而y的值不變,仍等于1。
同理,對于||運算:
表達式1 || 表達式2
當表達式1的值為“真”時,該邏輯表達式的結果肯定為“真”,因此表達式2的計算也不再需要了。
③ 在一個邏輯表達式中,如果有多個運算符,則要按照它們的優先級進行運算。
例如:
10>3&&10||0
首先處理“10>3”,結果為“真”,用1 表示;再處理“1&&10”,結果為“真”,用1表示;接著再處理“1||0”,結果為“真”。