- 基于ARM的小功率電動汽車控制器開發
- 高志剛編著
- 1340字
- 2021-03-10 14:17:47
3.5 C語言的運算符
C語言中的運算符號指的是一些實現特定功能的由非數字和字母組成的符號,比如加減乘除(分別對應+,-,×,/)等,按其應用場合的不同,主要有算術運算符、大小關系運算符、邏輯關系運算符、位操作運算符以及一些完成特殊任務的運算符等,本節按照應用場合的不同,對C語言中的運算符進行介紹。
3.5.1 模塊運算符
C語言中的模塊運算符由“起始”和“終止”兩部分組成,如小括號運算符的開始為“(”,終止為“)”,這兩部分連同其中間部分構成一個模塊,實現了特定的功能,如表3-21所示。
表3-21 模塊運算符的功能

小括號操作符的作用主要有四個,分別為約定優先級、進行類型轉換、限定函數的參數列表以及用在某些關鍵詞構成的固定語句中;中括號可以用來獲得數組變量的元素和指針變量取偏移后的值;而大括號的用途主要也有四個方面,分別為構成一個程序塊,作為函數體的開頭和結尾,作為結構體、聯合體中作為開頭和結尾以及為數組進行賦值。圖3-51中的代碼展示了模塊運算符的使用方法。

圖3-51 模塊運算符的使用方法示例代碼
3.5.2 算數運算符
C語言中運用多種算數運算符,可以方便地完成加法、減法、乘法、除法、移位等,并可以通過小括號規定算式中不同部分的優先級,如表3-22所示。
表3-22 算數運算符的功能

C語言支持在一個表達式中將多種運算符進行組合,并使用小括號改變部分計算的優先級。例如表3-23所示的代碼中示范了一個復雜的計算算例。程序執行之后,變量b的數值應為18*(18+2)+(18+18)/18-(18<<1)-(18%4) =360+2-36-2=324,變量c的數值從表達式上看,似乎應為18+(18-5)/2=18 +6.5=24.5,但因為變量a和c均為整型,所以實際運行中,小數部分被舍去,因此變量c的最終數值為24。變量d的數值為18。變量e的數值為18+(18-5)/2 =18+6.5=24.5。
表3-23 算數運算符的代碼示例

3.5.3 變量自操作
當需要對一個變量進行操作,之后又將結果存入該變量時,可以使用C語言專用的運算符。表3-24中給出了相應的操作符以及對應的等效表達式。利用這些操作符可以精簡代碼,并降低重復輸入變量名稱帶來的潛在錯誤風險。
表3-24 自操作運算符的功能

利用自操作運算符可以精簡代碼,提高代碼的可閱讀性。表3-25給出了一個代碼示例以及執行完各條指令后變量的數值。
表3-25 自操作運算符的代碼示例

3.5.4 大小關系運算符
大小關系運算符是用來比較數值、變量、常數或者表達式的大小關系的。主要有大于、小于、等于、不等于、不大于和不小于。如表3-26所示。
表3-26 大小關系運算符

利用大小關系運算符形成的表達式的比較結果為0或者1。如果為0,表示表達式不成立;如果為1,則表示表達式成立。表3-27中的代碼中展示了比較操作符的具體使用方法。
表3-27 大小關系運算符的示例代碼

3.5.5 邏輯關系運算符
邏輯關系運算符可以用來連接多個邏輯比較的結果。利用邏輯關系運算符得到的結果有“成立”和“不成立”兩種,分別是根據數值0和數值1進行判定的。C語言中支持的邏輯關系運算符有“邏輯并且”“邏輯或者”和“邏輯非”三種,如表3-28所示。
表3-28 邏輯關系運算符

表3-29中的代碼使用了不同邏輯關系運算符。當語句執行之后,變量x1、x2、x3、x4的值均為1,而變量y1、y2、y3、y4的值均為0。
表3-29 邏輯關系運算符代碼示例

3.5.6 特殊運算符
C語言中常用的特殊運算符有取地址和取內容兩種,如表3-30所示。
表3-30 特殊運算符

表3-31中的代碼示范了如何利用特殊運算符獲取變量的地址和指針變量的內容。
表3-31 特殊運算符示例代碼
