操作符的分類有算術操作符、移位操作符、位操作符、賦值操作符、單目操作符、關係操作符、邏輯操作符、條件操作符、逗號操作符、下表引用、函數調用和結構成員,下面我就對這些操作符做一個總結。
一.算術操作符
算術操作符有“+”、“-”、“*”、“\”、“%”。
- 除了 % 操作符之外,其他的幾個操作符可以作用於整數和浮點數。
- 對於 / 操作符如果兩個操作數都爲整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。
例如對於這樣一個例子:
他的輸出爲: - % 操作符的兩個操作數必須爲整數。返回的是整除之後的餘數。
二.移位操作符
分爲左移操作符“<<”和右移操作符“>>”。
三.位操作符
位操作符有:按位與“&”,按位或“|”,按位異或“^”。
對於計算我自己通俗的記法爲:對於按位與,都是1爲1,有0有1爲0,都是0爲0;對於按位或,有1爲1,無1爲0;對於按位異或,相同爲0,不同爲1.
注:他們的操作數必須爲整數。
四.賦值操作符
賦值操作符除了“=”外,常用的是一些複合操作符:“+=”、“-=”、“=”、“/=”、“%=”、“<<=”、“>>=”、“&=”、“|=”、“^=”。這些複合操作符會顯得更簡潔。
五.單目操作符
主要有:邏輯反操作符“!”,負值“-”,正值“+”,取地址“&”,操作數的類型長度(以字節爲單位)“sizeof”,對一個數的二進制按位取反“~”,前置、後置-- “--”,前置、後置++ “++”,間接訪問操作符(解引用操作符)“”。
六.關係操作符
主要有:“>”、“>=”、“<”、“<=”、“!=”、“==”。
七.邏輯操作符
邏輯與“&&”,邏輯或“||”。
要注意區分它們和按位與、按位或的關係。
八.條件操作符
exp1?exp2:exp3
它的意思是如果 exp1 爲真,則運算 exp2,整個條件表達式的值爲 exp2 的值;反之,則運算 exp3,整個條件表達式的值爲 exp3 的值。
條件運算符可以實現if else的功能。
九.逗號表達式
exp1,exp2,exp3...expN
逗號表達式就是用逗號隔開的多個表達式。逗號表達式是從左向右依次執行,整個表達式的結果是最後一個表達式的結果。
十.下表引用、函數調用和結構成員
1.[ ]下標引用操作符
操作數:一個數組名+一個索引值
2.( )函數調用操作符,接受一個或者多個操作數:第一個操作數是函數名,剩餘的操作數就是傳遞給函數的參數。
3.訪問一個結構的成員
.結構體.成員名
->結構體指針->成員名
最後,對於操作符的屬性,複雜表達式的求值有三個影響的因素:
①操作符的優先級。②操作符的結合性。③是否控制求值順序。