C語言操作符總結

2021-08-17 17:47:55 字數 2363 閱讀 3973

+、-、*、/、%
(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表示正...