C語言中的關係運算符



C語言中的關係運算符用於比較兩個值。常見的尖括號<>是關係運算符,此外還有下表中列出的其他一些運算子。

這些關係運算符用於布林表示式。所有關係運算符都計算結果為真或假。

C語言沒有布林資料型別。相反,“0”被解釋為假,任何非零值都被視為真。

示例1

以下是一個C語言中關係運算符的簡單示例:

#include <stdio.h>

int main(){

   int op1 = 5;
   int op2 = 3;

   printf("op1: %d op2: %d op1 < op2: %d\n", op1, op2, op1 < op2);

   return 0;
}

輸出

執行程式碼並檢查其輸出:

op1: 5 op2: 3 op1 < op2: 0

關係運算符在C語言中的決策控制和迴圈語句中起著重要作用。

下表列出了C語言中的所有關係運算符:

運算子 描述 示例
== 檢查兩個運算元的值是否相等。如果相等,則條件為真。 (A == B)
!= 檢查兩個運算元的值是否不相等。如果不相等,則條件為真。 (A != B)
> 檢查左運算元的值是否大於右運算元的值。如果是,則條件為真。 (A > B)
< 檢查左運算元的值是否小於右運算元的值。如果是,則條件為真。 (A < B)
>= 檢查左運算元的值是否大於或等於右運算元的值。如果是,則條件為真。 (A >= B)
<= 檢查左運算元的值是否小於或等於右運算元的值。如果是,則條件為真。 (A <= B)

所有關係運算符都是二元運算子。由於它們執行比較,因此需要兩側都有兩個運算元。

我們在C語言中使用=符號作為賦值運算子。因此,C語言使用“==”(雙等號)作為等號運算子

尖括號><用作“大於”和“小於”運算子。當與“=”符號結合使用時,它們形成“>=”運算子表示“大於或等於”和“<=”運算子表示“小於或等於”比較。

最後,“!”字首的“=”符號(!=)用作不等號運算子

示例2

以下示例顯示了所有關係運算符的使用。

#include <stdio.h>

int main(){

   int a = 21;
   int b = 10;
   int c ;
   
   printf("a: %d b: %d\n", a,b);
    
   if(a == b){
      printf("Line 1 - a is equal to b\n" );
   } else {
      printf("Line 1 - a is not equal to b\n" );
   }
	
   if (a < b){
      printf("Line 2 - a is less than b\n" );
   } else {
      printf("Line 2 - a is not less than b\n" );
   }
	
   if (a > b){
      printf("Line 3 - a is greater than b\n" );
   } else {
      printf("Line 3 - a is not greater than b \n\n" );
   }
   
   /* Lets change value of a and b */
   a = 5;
   b = 20;
   
   printf("a: %d b: %d\n", a,b);
	
   if (a <= b){
      printf("Line 4 - a is either less than or equal to  b\n" );
   }
	
   if (b >= a){
      printf("Line 5 - b is either greater than  or equal to b\n" );
   }
   
   if(a != b){
      printf("Line 6 - a is not equal to b\n" );
   } else {
      printf("Line 6 - a is equal to b\n" );
   }
   
   return 0;
}

輸出

執行此程式碼時,將產生以下輸出:

a: 21 b: 10
Line 1 - a is not equal to b
Line 2 - a is not less than b
Line 3 - a is greater than b

a: 5 b: 20
Line 4 - a is either less than or equal to  b
Line 5 - b is either greater than  or equal to b
Line 6 - a is not equal to b

示例3

==運算子需要謹慎使用。請記住,“=”是C語言中的賦值運算子。如果錯誤地將其用作等號運算子,則會得到不正確的輸出,如下所示:

#include <stdio.h>

int main(){

   int a = 5;
   int b = 3;

   if (a = b){
      printf("a is equal to b");
   }
   else {
      printf("a is not equal to b");
   }
   
   return 0;
}

輸出

“b”的值被賦給“a”,該值非零,因此if表示式返回真。

a is equal to b

示例4

我們也可以將“char”型別作為所有關係運算符的運算元,因為“char”型別是“int”型別的子集。請看以下示例:

#include <stdio.h>

int main(){

   char a = 'B';
   char b = 'd';

   printf("a: %c b: %c\n", a,b);

   if(a == b){
      printf("Line 1 - a is equal to b \n");
   } else {
      printf("Line 1 - a is not equal to b \n");
   }

   if (a < b){
      printf("Line 2 - a is less than b \n");
   } else {
      printf("Line 2 - a is not less than b \n");
   }

   if (a > b) {
      printf("Line 3 - a is greater than b \n");
   } else {
      printf("Line 3 - a is not greater than b \n");
   }
   
   if(a != b) {
      printf("Line 4 - a is not equal to b \n");
   } else {
      printf("Line 4 - a is equal to b \n");
   }
   
   return 0;
}

輸出

執行程式碼並檢查其輸出:

a: B b: d
Line 1 - a is not equal to b
Line 2 - a is less than b
Line 3 - a is not greater than b
Line 4 - a is not equal to b

關係運算符不能用於比較諸如陣列之類的二級型別或諸如結構體或聯合體之類的派生型別。

c_operators.htm
廣告