+、-、*、/、%
(1)對於「/」運算,兩運算元均為整數時,執行整數除法;
只要有浮點數作為運算元,執行浮點數除法;
(2)「%」的兩個運算元必須為整數;
(3)除了「%」操作符之外,其他幾個操作符均可作用於整數和浮點數.
移位操作是相對於二進位制的補碼而言的;
同時移位對被移數本身不產生影響;
移動額度位數不能為負;
(1)<< 左移操作符
左邊多餘拋棄,右邊空缺補零(左移一位相當於乘2)
例#include
int main()
(2)>> 右移操作符
(右移一位相當於除以2)
1)邏輯移位:左邊補零,右邊拋棄
2)算術移位:左邊補符號位,右邊拋棄
(移位不移負數字,即 n>>-1,沒有移位規則)
例:int main()
一定是記憶體中的二進位制數(即補碼)進行操作
(1)& 按位與
都為1時才是1,否則為0
(2)| 按位或
都為0時才為0,否則為1
(3)^ 按位異或
相同為0,不同為1
例int main()
=、+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=
(1)!邏輯反操作符
表示「非」
例:int flag = 2;
則flag表示真,!flag表示假(在迴圈時可以使用)
(2)- 負值 + 正值
例:-a、+b 也是單目運算子
(3)&取位址
例:int main()
; printf("%p\n",&a); //輸出陣列位址
printf("%p\n",&a+1); //輸出跳過整個陣列的位址
printf("%p\n",a); //輸出陣列首元素的位址
printf("%p\n",a+1); //輸出跳過陣列首元素的位址
} int main()
; printf("%p\n",&a); //輸出陣列位址
printf("%p\n",&a+1); //輸出跳過整個陣列的位址
printf("%p\n",a); //輸出陣列首元素的位址
printf("%p\n",a+1); //輸出跳過陣列首元素的位址
}
(4)sizeof 求運算元的型別長度
單位為位元組
例:int main()
例:int main()
(5)~ 對乙個數的二進位制按位取反
~0 = -1
(6)– 自減 ++ 自加
1)前置:先加/減,後運算
2)後置:先運算,後加減
(7)* 間接訪問操作符(解引用操作符)
例:int main()
a的值變為20
(8) 強制型別轉換(型別)
例 int num=(int)3.14
>、>=、<、<=、!=、==
值為0或1(真、假)
&& 邏輯與 || 邏輯或
&&為邏輯與:全真為真有假為假,||為邏輯或:有真則真,全假就假
exp1 ? exp 2: exp3
判斷exp1的真假,為真執行exp2,為假執行exp3
exp1,exp2,....,expn
從左到右依次執行,整個表示式的值由最後乙個逗號表示式的結果決定
例:
int main()
下標引用操作符
運算元:乙個陣列名+乙個索引值(即下標)
() 函式呼叫操作符
接受乙個或多個運算元:
第乙個運算元是函式名(函式名也是乙個位址),剩餘的運算元 就是傳遞給函式的引數
例:
int ret = add(1,2); //呼叫函式add()
也可以寫作int ret = (*add)(1,2)
訪問乙個結構的成員
1). 結構體.成員名
2)-> 結構體指標->成員名
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表示正...