C語言操作符總結

2021-09-23 10:47:52 字數 2045 閱讀 1194

算術操作符+  -  * / %

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表示正...