算術操作符:+ - * / %
1.除啦%操作符之外,其他的幾個操作符可以作用與整數和浮點數。
2.對於 / 操作符如果兩個運算元都為整數,執行整數除法。而只要有乙個運算元為浮點數就執行浮點數除法。
3.%操作符的兩個運算元必須徐都為整數。返回的是整除之後的餘數。
移位操作符:左移<< 右移》
左移操作符:移位規則:左邊拋棄,右邊補0。
右移操作符:移位規則:首先右移運算分兩種:
1.邏輯移位 左邊用0填充,右邊丟棄 。
2.算術移位 左邊用原該值的符號位填充,右邊丟棄。
警告 : 對於移位運算子,不要移動負數字,這個是標準未定義的。
位操作符:按位與 & 按位或 | 按位異或 ^
注:它們是在二進位制下實現的,它們的運算元必須是整數。
按位與:只要遇見0結果就為0,剩下的一種情況1 & 1為1。
按位或:只要遇見1結果就為1,剩下的一種情況0 | 0為0。
按位異或:相同為0,相異為1。
賦值操作符:=
賦值操作符是乙個很棒的操作符,他可以讓你得到乙個你之前不滿意的值。也就是你可以給自己重新賦值。
復合賦值符:+= -= *= /= %= >>= <<= &= |= ^=
這些運算子都可以寫成復合的效果。 比如:x=x+10和x+=10是一樣的效果。
前置、後置 -- 前置、後置++ 間接訪問操作符(解引用操作符) * 強制型別轉換(型別)
關係操作符:> >= < <= != ==
警告: 在程式設計的過程中== 和=不小心寫錯,導致的錯誤, 所以我們一般用這種方法例如:( 10 == a )這樣就可以解決。
邏輯操作符:邏輯與&& 邏輯或 ||
這裡有個需要注意的,如先定義a=0,b=1,c=2,i =(a++&&++b&&c++)執行完之後i=0,a=1,b=1,c=2。意思就是說在進行邏輯與的時候當a=0時,也就是為假時就不會在執行後面的++b&c++,或者當b=0時就不會執行c++。
同樣的,邏輯或當前面為真的時候就不會再執行後面。
條件操作符:exp1?exp2:exp3
意思是如果第乙個表示式為真,就執行表示式2,第乙個為假,就執行表示式3。
逗號表示式:exp1,exp2,exp3.······expn
逗號表示式,就是用逗號隔開的多個表示式。 逗號表示式,從左向右依次執行。整個表示式的結果是最後乙個表達 式的結果。
下標引用、函式呼叫和結構成員
1.[ ]下標引用操作符。運算元:乙個陣列名+乙個索引值
2.()函式呼叫操作符 接受乙個或者多個運算元:第乙個運算元是函式名,剩餘的運算元就是傳遞給函式的引數。
3.訪問乙個結構的成員:. (結構體.成員),-> (結構體指標->成員名) .
表示式求值
表示式求值的順序一部分是由操作符的優先順序和結合性決定。
同樣,有些表示式的運算元在求值的過程中可能需要轉換為其他型別。
隱式型別轉換
c的整型算術運算總是至少以預設整型型別的精度來進行的。
為了獲得這個精度,表示式中的字元和短整型運算元在使用之前被轉換為普通整型,這種轉換稱為整型提公升
算術轉換
如果某個操作符的各個運算元屬於不同的型別,那麼除非其中乙個運算元的轉換為另乙個運算元的型別,否則操作就 無法進行。
操作符的屬性
複雜表示式的求值有三個影響的因素.
1.操作符的優先順序
2.操作符的結合性
3.是否控制求值順序。
兩個相鄰的操作符先執行哪個?取決於他們的優先順序。如果兩者的優先順序相同,取決於他們的結合性。
C語言操作符總結
c語言操作符總結 1.算數操作符 有浮點數則為浮點除法 全為整形 2.移位操作符 所有的移位操作符都是二進位制移位 左移 效果 左邊拋棄右邊補0.右移 效果 1 符號位 算術移位 原該值的符號位 2 0 邏輯移位 警告 不要移動負數字 3.位操作符 按位與 按位或 按位異或 注意 全都為二進位制位操...
C語言 操作符總結
1.運算操作符 加 可作為正號 例 a b 4 減 可作為正號 例 a b 5 乘 例 a b 除 例 a b 注意 分母不能為零 取餘 運算操作符的使用方法,基本與數學上的使用一致 2.賦值操作符 例 a 2 可讀為將2賦給a 注意 從右向左進行運算 3.其他符賦值操作符 例 a 1 相當於 a ...
C語言操作符總結
1.操作符的兩個運算元必須為整數,返回的是整除後的餘數。2.對於 操作符,如果兩個運算元都是整數則執行整數除法,只要有浮點數就執行浮點數除法。左移操作符 右移操作符 左邊拋棄,右邊補0 右移分為兩種 1.邏輯移位 左邊用0補,右邊丟棄 2.算術移位 左邊用原來的符號位填充,右邊丟棄 符號位中0表示正...