運算子的優先順序和結合性
優先順序
運算子
名稱或含義
使用形式
結合方向
說明
1
後置++
後置自增運算子
變數名++
左到右
後置--
後置自減運算子
變數名--
[ ]
陣列下標
陣列名[
整型表示式]
( )
圓括號
(表示式)
/函式名
(形參表)
.
成員選擇(物件) 物件
.成員名
->
成員選擇(指標)
物件指標
->
成員名
2-
負號運算子 -
表示式
右到左
單目運算子 (
型別)強制型別轉換 (
資料型別
)表示式 前置
++ 前置自增運算子 ++
變數名
單目運算子 前置
-- 前置自減運算子 --
變數名
單目運算子 *
取值運算子 *
指標表示式
單目運算子 &
取位址運算子 &
左值表示式
單目運算子 !
邏輯非運算子 !
表示式
單目運算子 ~
按位取反運算子 ~
表示式
單目運算子
sizeof
長度運算子
sizeof
表示式/sizeof(型別)
3/
除 表示式/
表示式
左到右
雙目運算子 *
乘表示式
*表示式
雙目運算子 %
餘數(取模)
整型表示式
%整型表示式
雙目運算子
4+
加 表示式+
表示式
左到右
雙目運算子 -
減表示式
-表示式
雙目運算子
5
<< 左移
表示式<<
表示式
左到右
雙目運算子
>> 右移
表示式>>
表示式
雙目運算子
6
> 大於
表示式>
表示式
左到右
雙目運算子
>=
大於等於
表示式>=
表示式
雙目運算子
< 小於
表示式<
表示式
雙目運算子
<=
小於等於
表示式<=
表示式
雙目運算子
7==
等於 表示式==
表示式
左到右
雙目運算子 !=
不等於表示式
!=表示式
雙目運算子
8&
按位與
整型表示式
&整型表示式
左到右雙目運算子
9^
按位異或
整型表示式
^整型表示式
左到右雙目運算子
10|
按位或
整型表示式
|整型表示式
左到右雙目運算子
11&&
邏輯與
表示式&&
表示式
左到右
雙目運算子
12||
邏輯或
表示式||
表示式
左到右
雙目運算子
13?:
條件運算子
表示式1?表示式
2: 表示式3
右到左
三目運算子
14=
賦值運算子 變數
=表示式
右到左 /=
除后賦值 變數
/=表示式 *=
乘後賦值 變數
*=表示式 %=
取模後賦值 變數
%=表示式 +=
加後賦值 變數
+=表示式 -=
減後賦值 變數
-=表示式
<<=
左移後賦值 變數
<<=
表示式
>>=
右移後賦值 變數
>>=
表示式 &=
按位與後賦值 變數
&=表示式 ^=
按位異或後賦值 變數
^=表示式 |=
按位或後賦值 變數
|=表示式
15,
逗號運算子
表示式,表示式,…
左到右
從左向右順序運算
*優先順序一列 數字越小 優先順序越大
reference:
運算子優先順序和結合性
所謂優先順序就是當乙個表示式中有多個運算子時,先計算誰,後計算誰。這個其實我們在小學學算術的時候就學過,如1 4 2。但是c語言中的運算子已經遠不止四則運算中的加減乘除了,還有其他很多運算子。當它們出現在同乙個表示式中時先計算誰後計算誰呢?所以本節還是有必要講一下的。最後我還會將所有運算子展示出來,...
運算子優先順序和結合性
優先順序 運算子含義 運算物件個數 結合順序1 初等運算子 自左至右 下標運算子 指向結構體成員運算子 結構體成員運算子2!單目運算子 1 單目運算子 自右至左 負號 指標運算子 sizeof 型別 型別轉換運算子3 乘法算數運算子 2 雙目運算子 自左至右 4 2 雙目運算子 自左至右 5 2 雙...
運算子 優先順序 結合性
語言的運算子可分為以下幾類 1.算術運算子 用於各類數值運算。包括加 減 乘 除 求餘 或稱模運算,自增 自減 共七種。2.關係運算子 用於比較運算。包括大於 小於 等於 大於等於 小於等於 和不等於 六種。3.邏輯運算子 用於邏輯運算。包括與 或 非 三種。4.位操作運算子 參與運算的量,按二進位...