算術、指派運算符
運算符
優先級
運算符
名稱或含義
使用形式
結合方向
說明
1
[]
數組下标
數組名[常量表達式]
左到右
()
圓括号
(表達式)
函數名(形參表)
.
成員選擇(對象)
對象.成員名
->
成員選擇(指針)
對象指針->成員名
2
-
負号運算符
-表達式
右到左
單目運算符
(類型)
強制類型轉換
(資料類型)表達式
++
自增運算符
++變量名
變量名++
單目運算符
--
自減運算符
--變量名
變量名--
單目運算符
*
取值運算符
*指針變量
單目運算符
&
取位址運算符
&變量名
單目運算符
!
邏輯非運算符
!表達式
單目運算符
~
按位取反運算符
~表達式
單目運算符
sizeof
長度運算符
sizeof(表達式)
3
/
除
表達式 / 表達式
左到右
雙目運算符
*
乘
表達式*表達式
雙目運算符
%
餘數(取模)
整型表達式%整型表達式
雙目運算符
4
+
加
表達式+表達式
左到右
雙目運算符
-
減
表達式-表達式
雙目運算符
5
<<
左移
變量<<表達式
左到右
雙目運算符
>>
右移
變量>>表達式
雙目運算符
6
>
大于
表達式>表達式
左到右
雙目運算符
>=
大于等于
表達式>=表達式
雙目運算符
<
小于
表達式<表達式
雙目運算符
<=
小于等于
表達式<=表達式
雙目運算符
7
==
等于
表達式==表達式
左到右
雙目運算符
!=
不等于
表達式!= 表達式
雙目運算符
8
&
按位與
表達式&表達式
左到右
雙目運算符
9
^
按位異或
表達式^表達式
左到右
雙目運算符
10
|
按位或
表達式|表達式
左到右
雙目運算符
11
&&
邏輯與
表達式&&表達式
左到右
雙目運算符
12
||
邏輯或
表達式||表達式
左到右
雙目運算符
13
?:
條件運算符
表達式1? 表達式2: 表達式3
右到左
三目運算符
14
=
指派運算符
變量=表達式
右到左
/=
除後指派
變量/=表達式
*=
乘後指派
變量*=表達式
%=
取模後指派
變量%=表達式
+=
加後指派
變量+=表達式
-=
減後指派
變量-=表達式
<<=
左移後指派
變量<<=表達式
>>=
右移後指派
變量>>=表達式
&=
按位與後指派
變量&=表達式
^=
按位異或後指派
變量^=表達式
|=
按位或後指派
變量|=表達式
15
,
逗号運算符
表達式,表達式,…
左到右
規律
結合方向隻有三個是從右往左,其餘都是從左往右。
所有雙目運算符中隻有指派運算符的結合方向是從右往左。
另外兩個從右往左結合的運算符也很好記,因為它們很特殊:一個是單目運算符,一個是三目運算符。
C語言中有且隻有一個三目運算符。
逗号運算符的優先級最低,要記住。
此外要記住,對于優先級:算術運算符 > 關系運算符 > 邏輯運算符 > 指派運算符。邏輯運算符中“邏輯非 !”除外。
算術運算符
表達式:常量變量函數,運算符組成的有意義的式子
基本算術運算符
+-*/%
結合方向:從左到右
說明;兩數相除,結果為整數,有一個為實數(小數)結果為實數(小數);%要求兩邊都為整數
自增自減運算符
作用:是變量值加一或減一
種類
字首++i,--i(先使用i+1或i-1,在使用i值)
int i=5,b=++i
輸出b=6,i=6
字尾i++,i--(先使用i值,在使用i+1,或i-1)
int i=5,b=i++
輸出為b=5,i=6
記憶小技巧
運算符在前,先運算,在指派,
運算符在後,後運算
說明:
++,--不能用于常量,表達式和函數傳回值,操作對象必須為變量
結合方向自右向左
指派運算符
簡單指派運算
符号
=
格式
變量辨別符=表達式
作用
将一個資料指派給一個變量
複合指派運算
種類
+=,-=,*=,/=,%=,<<= , >>=
含義
變量 op = 表達式
等價于:變量 = 變量 op(表達式)
舉例
a+=3 等價于 a=a+3
說明
結合方向,自右向左
左側必須是變量
指派類型轉換規則:指派号右邊表達式自動轉換為指派号左邊的類型