C語言丨搞定關系運算符,只需一分鍾!


之前介紹了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++學習企鵝圈子】,分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!

編程學習書籍:


 

編程學習視頻:


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM