官术网_书友最值得收藏!

4.1.1 關系運算符

關系運算符用于比較兩個數據的大小,共有如下6種運算符。

① < :小于。

② <=:小于等于,對應的數學符號是“≤”。

③ > :大于。

④ >=:大于等于,對應的數學符號是“≥”。

⑤==:等于,由連續兩個等號組成。

⑥ !=:不等于,對應的數學符號是“≠”。

要注意它們的優先級。前4種關系運算符的優先級相同,后兩種也相同,前4種高于后兩種。所有的關系運算符的優先級都低于算術運算符,而高于賦值運算符和逗號運算符。

例如:

① c>a+b等價于c>(a+b)

② a==b<c等價于a==(b<c)

③ a=b<=c等價于a=(b<=c)

使用關系運算符,需要注意以下幾點。

① 關系運算符是雙目運算符,其兩邊的操作數可以是整型、實型、字符型、指針型及枚舉型等。如果參與運算的兩個數類型不一致,則先要進行類型轉換,再進行關系運算。

例如,'x'>'c' 是兩個字符型常量進行比較,實際上比較的是這兩個字符型常量的ASCII碼值。又如,'a'>70的運算順序是先將字符 'a' 轉換成其ASCII碼值97,再與整型常量70進行比較。

② 關系運算符具有左結合性,可以在一個關系表達式中連續使用。例如,關系表達式-1<=x<=1的運算順序是先判斷-1<=x是否成立,結果為0或1,然后再用0或1去判是否小于等于1,結果永遠是1。但是,我們知道關系運算的結果是個邏輯值,或為“真”或為“假”,讓它去跟一個整型、實型數據去比較大小,并沒有實際意義,所以一般不要連續使用關系運算符組成表達式,有的系統甚至把連續出現的關系運算符看做“錯誤”。

③ 必須注意區別“=”和“==”。前者是賦值運算符,后者是關系運算符中的等于運算符。例如,對于下面的程序:

            1   #include<stdio.h>
            2   void  main()
            3   {   int a=5,b=3,c;
            4       printf("c=%d\n",c==a);
            5       printf("a=b?%d\n",a=b);
            6   }

程序的運行結果為:

            c=0
            a=b?3       (1表示二者相等,0表示不等)

結果顯然是錯誤的。這是因為,第4行中,錯把“c=a”寫成了“c==a”,多寫了一個“=”,賦值運算變成了關系運算(程序中變量c未做初始化,編譯時顯示有“警告”錯誤);而在第5行中,錯把“a==b”寫成了“a=b”,遺漏了一個“=”,關系運算變成了賦值運算。

主站蜘蛛池模板: 竹溪县| 淅川县| 满洲里市| 阿拉善右旗| 勃利县| 景德镇市| 克山县| 湛江市| 湄潭县| 双牌县| 公主岭市| 澄城县| 金湖县| 南召县| 广西| 招远市| 临沭县| 台北市| 无棣县| 稻城县| 萍乡市| 新闻| 淳安县| 宁波市| 临邑县| 焦作市| 台州市| 靖宇县| 高雄县| 萨嘎县| 乐都县| 德兴市| 兴隆县| 茂名市| 宿松县| 泗阳县| 增城市| 诸城市| 定结县| 莎车县| 吉安市|