正確理解關係運算符與關係表達式

知識補丁01:關係運算符及其優先次序

少俠,接招吧!
[接招看題025-01] 說明關係運算符的優先級低於算術運算符,但高於賦值運算符。並比較關係運算符的優先級。
在這裏插入圖片描述
幫你節約時間的源代碼:
main()
{
int result=0;
result=0!=1>0;
printf(“0!=1>0 is equal:%d\n”,result);
result=0<(1>=0);
printf(“0<(1>=0) is equal:%d\n”,result);
result=4+8/47-1;
printf("4+8/4
7-1 is equal:%d\n",result);
}

知識補丁,內功心法:
*1. C語言提供6種關係運算符:
<(小於),
<=(小於或等於),

(大於),
=(大於或等於), ***前4個優先級相同**且前4個高於後2個
==(等於),後2個優先級也相同
!=(不等於)
注意:在C語言中,“等於"關係運算符是雙等號”= =",而不是單等號"= "(賦值運算符)。
2.優先級
(1)在關係運算符中,前4個優先級相同,後2個也相同,且前4個高於後2個。
(2)與其它種類運算符的優先級關係:
算術運算符的優先級> 關係運算符的優先級>賦值運算符的優先級。

知識補丁02:關係表達式

下面的關係表達式都是合法的:
a>b,a+b>c-d,(a=3)<=(b=5),‘a’>=‘b’,(a>b)= =(b>c)
關係表達式的值–邏輯值(非"真"即"假")。邏輯值也叫布爾值。
由於C語言沒有邏輯型數據,所以用整數"1"表示"邏輯真",用整數"0"表示"邏輯假"。
例如,假設num1=3,num2=4,num3=5,則:
(1)num1>num2的邏輯關係判斷,邏輯關係爲假,用值=0來表示。
(2)(num1>num2)!=num3的邏輯關係判斷,邏輯關係爲真,用值=1來表示。
(3)num1<num2<num3的值=1。
思考題:任意改變num1或num2的值,會影響整個表達式的值嗎?爲什麼?演示如下:
接招看題025-02:沒改變的結果如下:
在這裏插入圖片描述

改變之後的結果如下:
在這裏插入圖片描述
總結程序:之所以會出現0,1的差異,實質上是邏輯關係真假的差異。抓住邏輯關係。
(4)(num1<num2)+num3的值=6,因爲num1<num2的值=1,1+5=6。
再次強調:C語言用整數"1"表示"邏輯真",用整數"0"表示"邏輯假"。所以,關係表達式的值,還可以參與其它種類的運算,例如算術運算、邏輯運算等。

[接招看題025-03]說明關係表達式的值關係
在這裏插入圖片描述
幫你節約時間的源代碼:
main()
{
int result=0;
int num1=3,num2=4,num3=5;
result=num1>num2;
printf(“num1>num2 is equal:%d\n”,result);
result=(num1>num2)!=num3;
printf("(num1>num2)!=num3 is equal:%d\n",result);
result=num1<num2<num3;
printf(“num1<num2<num3 is equal:%d\n”,result);
result=(num1<num2)+num3;
printf("(num1<num2)+num3 is equal:%d\n",result);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章