C語言操作符的介紹及總結
一、操作符的定義
簡單來說操作符就是告訴編譯程式執行特定數學運算,邏輯運算,位運算的符號。
二、操作符的分類
算數操作符
邏輯操作符
關係操作符
單目操作符
賦值操作符
位操作符
移位操作符
逗號表示式
三、各種操作符的介紹
1. 算數操作符:+、-、*、/、%(取模)
(1). 兩個運算元相加,相減,相乘,相除既可以是兩個整型數字,也可以是兩個浮點運算元。取模運算必須是兩個整型運算元,求出整除之後的餘數。
(2). “/“ :兩數相除時,兩個整型相除,結果為整型;只要有一個浮點型,則結果為浮點型 。
(3). 算數操作符有兩個運算元,所以不是單目操作符。
2. 邏輯操作符:&&(邏輯與),||(邏輯或)
邏輯與:只要有一個為假,則結果為假返回0。
邏輯或:只要有一個為真,則結果為真返回非零數(1)。
3. 關係操作符:>,<,大於等於>=,小於等於<=,不等於!=,等於==
注意:兩個等號是等於,一個等號是賦值。
4. 單目操作符:只有一個運算元的運算子
(1)邏輯反操作:!
eg: a==1, ! a==0,即為假。
(2)取地址:& 返回變數a的地址:&a
(3)對一個數的二進位制數按位取反:~
計算機中對一個數是用補碼存放的
eg: a的值 10000000000000000000000000000011
~a的值11111111111111111111111111111100
(4) 正值+ 負值- 正值加號一般省略
(5)自增自減:++a, --a, a++, a--
加(減)號在前/後,使用a之前/後加(減)一
(6) 運算元的型別長度,以位元組為單位 sizeof
注意:1. sizeof()不是函式,求變數大小時括號可有可無,求型別大小時括號不能省略。
2. sizeof()括號中的表示式不參與運算。
3. sizeof(陣列名):陣列名錶示整個陣列的大小
&陣列名:陣列名錶示整個陣列,取出的是整個陣列的地址
其他情況下,陣列名均表示首元素或首元素的地址
5. 賦值操作符:可以重新賦值,包括複合賦值操作符。
= += -= *= /= %= 左移賦值<<= 右移賦值 >>= 按位與並賦值&= 按位或並賦值|= 按位異或並賦值^=
6. 位操作符:運算元必須為整數
按位與& 只要有一個0那一位就是0
按位或 | 只要有一個1那一位就是1
按位異或^ 相同為0不同為1
7. 移位操作符:左移位操作符<< 二進位制數左移符號,左運算元的值向左移動指定位數,左移一位的結果相當於乘以2。規則:左邊拋棄右邊補零。
右移位操作符>> 二進位制數右移符號,右運算元的值向右移動指定位數,右移一位的結果相當於除以2。
規則:邏輯移位:右邊丟棄左邊補零。
算數移位:右邊丟棄左邊補符號位(整數補0,負數補1)。
注意:不能移動負數位,比如 <<-1,這是錯的。
8. 逗號表示式:就是用逗號隔開的多個表示式,從左向右開始執行,結果是最後一個表示式的結果。
三、優先順序比較
由高到低:單目操作符>算數操作符>關係操作符>邏輯操作符>逗號表示式