C語言中文網 目錄

關系運算符及其優先級,C語言關系運算符及其優先級詳解

C 語言提供的關系運算符有: >(大于)、>=(大于等于)、<(小于)、<=(小于等于)、==(等于)和 !=(不等于)6 種二元關系運算符。

在以上 6 種關系運算符中,前 4 個的優先級高于最后兩個。

由關系運算符組成的式子為關系表達式,如 a>b 即為關系表達式,在 C 語言中,同邏輯表達式一樣,關系表達式的值也為邏輯值,即布爾型(bool),取值為真或假。

算術、邏輯、關系、賦值運算符的優先級順序為:

邏輯非 !>算術>關系>邏輯與&&、邏輯或||>賦值=

例如:
int a=3,b=5;
則有:
  • a>b:邏輯假,其值為 0;
  • a>=b:邏輯假,其值為 0;
  • a<b:邏輯真,其值為 1;
  • a<=b:邏輯真,其值為 1;
  • a==b:邏輯假,其值為 0;
  • a!=b:邏輯真,其值為 1;

【例 1】分析以下程序,輸出其運行結果。
#include<stdio.h>
int main (void)
{
    int a=0,b=1,c;
    c=a>=b||b++>1;
    printf("a=%d,b=%d,c=%d\n",a,b,c);
    return 0;
}
代碼分析:
根據運算符的優先級,表達式 a>=b||b++>1 等價于 (a>=b)||(b++>1)。a>=b 為假,其值為 0,邏輯或 || 不會發生“短路”。

接著計算邏輯或 || 的右操作數 b++>1,由于是后綴加 1,故先取 b 的原值 1 與 1 比較大小,由于 1>1 為假,故邏輯或 || 的右操作數也為假,假 || 假 = 假,故 c 的值為 0。執行了一次 b++ 運算,故 b 的自身值增了 1,變為 2。

運行結果為:
a=0,b=2, c=0

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo