共用方式為


C 關係型和相等運算符

二元關係型和相等運算符會比較其第一個作數與第二個作數,以測試指定關聯性的有效性。 如果測試的關聯性為 true,則關係表達式的結果為 1,如果為 false 則為 0。 結果類型為 int

語法

relational-expression
shift-expression
relational-expression < shift-expression
relational-expression > shift-expression
relational-expression <= shift-expression
relational-expression >= shift-expression

equality-expression
relational-expression
equality-expression == relational-expression
equality-expression != relational-expression

關係型和相等運算符會測試下列關聯性:

操作員 經過測試的關聯性
< 第一個作數小於第二個作數
> 第一個作數大於第二個作數
<= 第一個作數小於或等於第二個作數
>= 第一個作數大於或等於第二個作數
== 第一個作數等於第二個作數
!= 第一個作數不等於第二個作數

清單中的前四個運算符的優先順序高於等號運算符 (==!=)。 請參閱 C 運算子的 [優先順序] 和 [關聯性] 資料表中的優先順序資訊。

作數可以有整數、浮點數或指標類型。 作數的類型可能不同。 關係運算子會對整數和浮動類型作數執行一般算術轉換。 此外,您可以使用下列作數類型組合搭配關係型和相等運算符:

  • 任何關係型或相等運算子的兩個作數都可以是相同類型的指標。 對於相等 (==) 和不等!=比較運算符,比較的結果會指出兩個指標是否尋址相同的記憶體位置。 對於其他關係運算符 (<><=、 和 >=),比較的結果表示所指向之物件之兩個記憶體地址的相對位置。 關係運算子只會比較位移。

    指標比較只會針對相同物件的部分定義。 如果指標參考陣列的成員,則比較相當於相對應的下標比較。 第一個數位元素的位址是最後一個項目的位址「小於」。 對於結構,稍後所宣告之結構成員的指標是結構稍早宣告之成員的「大於」指標。 相同等位成員的指標相等。

  • 指標值可以與相等== () 或不等!=的常數值 0 進行比較。 值為 0 的指標稱為 「null」 指標;也就是說,它不會指向有效的記憶體位置。

  • 等號運算元遵循與關係運算符相同的規則,但允許更多可能性:指標可以與值為0的常數整數運算式比較,或指向的 void指標。 如果兩個指標都是 Null 指標,則會比較為相等。 相等運算子會比較區段和位移。

範例

這些範例說明關係型和相等運算元。

int x = 0, y = 0;
if ( x < y )

由於 xy 相等,此範例中的表達式會產生值 0。

char array[10];
char *p;

for ( p = array; p < &array[10]; p++ )
    *p = '\0';

此範例中的片段會將的每個項目 array 設定為 Null 字元常數。

enum color { red, white, green } col;
   .
   .
   .
   if ( col == red )
   .
   .
   .

這些語句會宣告具有標記colorcol列舉變數。 變數可以隨時包含整數值 0、1 或 2,分別代表列舉集 color的其中一個專案:色彩 redwhitegreen。 如果 col 執行語句時 if 包含 0,則會執行相依 if 於 的任何語句。

另請參閱

關係運算子:<、、><=、 和>=
等號運算子: ==!=