之前介紹了C語言中的邏輯運算符,今天就分享一下關系運算符吧,希望對大家有所幫助。

關系運算符
在判斷條件中,讓程序決定下一步的操作,稱為關系運算符(Relational Operators)。
關系運算符在使用時,它的兩邊都會有一個表達式,比如變量、數值、加減乘除運算等,關系運算符的作用就是判明這兩個表達式的大小關系。注意,是判明大小關系,不是其他關系。
關系運算實際上類似於數學當中比較數字大小的運算。C語言提供了 6 種關系運算符:

關系運算符的左右兩邊可以是變量、數值或算術表達式,用關系運算符連接而成的表達式稱為關系表達式。在含有算術運算符的關系表達式中,算術運算符的優先級高於關系運算符。
關系表達式的運算結果是一個邏輯值:“真”或“假”,在 C語言中用數值 1 表示“真”,用數值 0 表示“假”。因而,每當 C語言對關系表達式進行運算時,總是產生結果數值 1 或 0。下面的語句把 1 賦值給變量 a,把 0 賦值給變量 b:
a = (8<10); //(8<10)為“真”,其結果值為 1,因而變量 a 被賦值 1
b = (3==4); //(3==4)為“假”,其結果值為 0,因而變量 b 被賦值 0
關系運算符的兩邊可以是變量、數據或表達式,例如:
a+b > c-d
x > 3/2
'a'+1 < c
-i-5*j == k+1
關系運算符也可以嵌套使用,例如:
a > (b > c)
a != (c == d)
關系運算符的運算結果只有 0 或 1。當條件成立時結果為 1,條件不成立結果為 0。例如:
5>0 成立,其值為 1;
34-12>100 不成立,其值為 0;
(a=3)>(b=5) 由於3>5不成立,故其值為 0。
我們將運算結果 1 稱為“真”,表示條件成立,將 0 稱為“假”,表示條件不成立。
下面的代碼會將關系運算符的結果輸出:
#include <stdio.h>
int main(){
char c='k';
int i=1, j=2, k=3;
float x=3e+5, y=0.85;
int result_1 = 'a'+5<c, result_2 = x-5.25<=x+y;
printf( "%d, %d\n", result_1, -i-2*j>=k+1 );
printf( "%d, %d\n", 1<j<5, result_2 );
printf( "%d, %d\n", i+j+k==-2*j, k==j==i+5 );
return 0;
}
運行結果:
1, 0
1, 1
0, 0
對於含多個關系運算符的表達式,如 kji+5,根據運算符的左結合性,先計算kj,該式不成立,其值為0,再計算0i+5,也不成立,故表達式值為0。
特別注意,才表示等於,而=表示賦值,大家要注意區分,切勿混淆。
if 語句的判斷條件
if 語句的判斷條件中不是必須要包含關系運算符,它可以是賦值表達式,甚至也可以是一個變量,例如:
//情況①
if(b){
//TODO:
}
//情況②
if(b=5){ //情況①
//TODO:
}
都是允許的。只要整個表達式的值為非0,條件就成立。
上面兩種情況都是根據變量 b 的最終值來判斷的,如果 b 的值為非0,那么條件成立,否則不成立。
再如
if(a=b)
printf("%d",a);
else
printf("a=0");
意思是,把 b 的值賦予 a,如果為非0則輸出該值,否則輸出“a=0”字符串。
總結
1、=表示賦值,把其右邊的值存儲在左邊的變量中。
2、==是關系運算符,判斷其左右兩邊的值是否相等。

如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!
【C語言C++學習企鵝圈子】,分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍:

編程學習視頻:
