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

4.1 認識運算符

C語言中的運算符是一種告訴編譯器執行特定的數學或邏輯操作的符號,C語言內置了豐富的運算符,主要包括算術運算符、關系運算符、邏輯運算符、賦值運算符、位運算符等。

4.1.1 算術運算符

C語言中的算術運算符是用來處理四則運算的符號,是最簡單、最常用的符號,數字的處理幾乎都會使用到算術運算符。如表4-1所示顯示了C語言支持的所有算術運算符。這里假設變量A的值為10,變量B的值為20。

表4-1 算術運算符

【例4.1】編寫程序,計算數值21與10的和、差、積等數值,并輸出計算結果(源代碼\ch04\4.1.txt)。

程序運行結果如圖4-1所示。

圖4-1 例4.1的程序運行結果

在算術運算符中,自增、自減運算符又分為前綴和后綴。當++或--運算符置于變量的左邊時,稱為前置運算或前綴,表示先進行自增或自減運算,再使用變量的值。而當++或--運算符置于變量的右邊時,稱為后置運算或后綴,表示先使用變量的值,再進行自增或自減運算。前置后置運算方法如表4-2所示,這里假設計算的數值為a和b,并且a的值為5。

表4-2 自增、自減運算符的前置與后置

【例4.2】編寫程序,定義整型變量x、y,分別對x做前置運算和后置運算,將運算結果賦予y,分別輸出x、y的值(源代碼\ch04\4.2.txt)。

程序運行結果如圖4-2所示。在本實例中,y=x++先將x賦值給y,再對x進行自增運算。y=++x先將x進行自增運算,再將x賦值給y。y=x--先將x賦值給y,再對x進行自減運算。y=--x先將x進行自減運算,再將x賦值給y。

圖4-2 例4.2的程序運行結果

4.1.2 關系運算符

關系運算可以被理解為是一種“判斷”,判斷的結果要么是“真”,要么是“假”。C語言定義關系運算符的優先級低于算術運算符,高于賦值運算符。C語言中定義的關系運算符如表4-3所示。這里假設變量A的值為10,變量B的值為20。

表4-3 關系運算符

☆大牛提醒☆

關系運算符中的等于號==很容易與賦值號=混淆,一定要記住,=是賦值運算符,而==是關系運算符。

【例4.3】編寫程序,使用關系運算符判斷數值5與6的關系,并輸出判斷結果(源代碼\ch04\4.3.txt)。

程序運行結果如圖4-3所示。

圖4-3 例4.3的程序運行結果

4.1.3 邏輯運算符

C語言為用戶提供了邏輯運算符,包括邏輯與、邏輯或、邏輯非3種邏輯運算符。邏輯運算符兩側的操作數需要轉換成布爾值進行運算。邏輯與和邏輯非都是二元運算符,要求有兩個操作數,而邏輯非為一元運算符,只有一個操作數。

表4-4顯示了C語言支持的所有邏輯運算符,假設變量A的值為1,變量B的值為0。

表4-4 邏輯運算符

為了方便掌握邏輯運算符的使用,邏輯運算符的運算結果可以用邏輯運算的“真值表”來表示,如表4-5所示。

☆大牛提醒☆

邏輯運算符與關系運算符的返回結果一樣,分為“真”與“假”兩種,“真”為“1”,“假”為“0”。

【例4.4】編寫程序,使用邏輯運算符判斷數值5與6的關系,并輸出判斷的結果(源代碼\ch04\4.4.txt)。

表4-5 真值表

程序運行結果如圖4-4所示。

圖4-4 例4.4的程序運行結果

4.1.4 賦值運算符

賦值運算符為二元運算符,要求運算符兩側的操作數類型必須一致(或者右邊的操作數必須可以隱式轉換為左邊操作數的類型),C語言中提供的簡單賦值運算符如表4-6所示。

表4-6 賦值運算符

【例4.5】編寫程序,使用賦值運算符對5進行賦值運算,然后輸出運算結果(源代碼\ch04\4.5.txt)。

程序運行結果如圖4-5所示。

圖4-5 例4.5的程序運行結果

☆大牛提醒☆

在書寫復合賦值運算符時,兩個符號之間一定不能有空格,否則將會出錯。

4.1.5 位運算符

任何信息在計算機中都是以二進制的形式保存的,位運算符是對數據按二進制位進行運算的運算符。C語言中提供的位運算符如表4-7所示,這里假設變量A的值為60,變量B的值為13。

表4-7 位運算符

【例4.6】編寫程序,使用位運算符對數值60和13進行位運算,然后輸出運算結果(源代碼\ch04\4.6.txt)。

程序運行結果如圖4-6所示。

圖4-6 例4.6的程序運行結果

4.1.6 雜項運算符

在C語言中,除了算術運算符、關系運算符、邏輯運算符等,還有其他一些重要的運算符,如表4-8所示。

表4-8 雜項運算符

【例4.7】編寫程序,使用雜項運算符計算變量的值(源代碼\ch04\4.7.txt)。

程序運行結果如圖4-7所示。

圖4-7 例4.7的程序運行結果

4.1.7 運算符的優先級

運算符的種類非常多,通常不同的運算符又構成了不同的表達式,甚至一個表達式中又包含有多種運算符,因此它們的運算方法應該有一定的規律性。C語言規定了各類運算符的運算優先級及結合性等,如表4-9所示。

表4-9 運算符的運算優先級及結合性

☆大牛提醒☆

如果無法確定運算符的有效順序,則盡量采用括號來保證運算的順序,這樣也使得程序一目了然,而且自己在編程時能夠保持思路清晰。

【例4.8】編寫程序,使用小括號改變表達式的運算順序,并輸出表達式的計算結果(源代碼\ch04\4.8.txt)。

程序運行結果如圖4-8所示。

圖4-8 例4.8的程序運行結果

主站蜘蛛池模板: 江北区| 长白| 德清县| 深水埗区| 都兰县| 衡东县| 邯郸县| 雅安市| 伊金霍洛旗| 安泽县| 延津县| 长岭县| 揭西县| 和田县| 金山区| 义马市| 昆明市| 桑日县| 桃园市| 香河县| 公安县| 南阳市| 鱼台县| 江口县| 台南县| 河北省| 桦南县| 阿合奇县| 驻马店市| 宁南县| 韶关市| 砚山县| 泽库县| 榆林市| 南溪县| 淅川县| 微山县| 右玉县| 怀来县| 宽城| 金阳县|