1. 程式人生 > >C語言的運算子順序

C語言的運算子順序

在一個表示式中可能包含多個有不同運算子連線起來的、具有不同資料型別的資料物件;由於表示式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表示式中含多種運算時,必須按一定順序進行結合,才能保證運算的合理性和結果的正確性、唯一性。

第一列 運算子 名稱或含義 使用形式 結合方向
單目運算子 [] 陣列下標 陣列名[整型表示式] 左到右
() 圓括號 (表示式)/函式名(形參表)
. 成員選擇(物件) 物件.成員名
-> 成員選擇(指標) 物件指標->成員名
前述運算子 - 負號運算子 -算術型別表示式 右到左
(type) 強制型別轉換 (純量資料型別)純量表達式
++ 自增運算子 ++純量型別可修改左值表示式
自減運算子 –純量型別可修改左值表示式
* 取值運算子 *指標型別表示式
& 取地址運算子 &表示式
! 邏輯非運算子 !純量型別表示式
~ 按位取反運算子 ~整型表示式
sizeof 長度運算子 sizeof 表示式, sizeof(型別)
算術運算子 / 表示式/表示式 左到右
* 表示式*表示式
% 餘數(取模) 整型表示式%整型表示式
+ 表示式+表示式
- 表示式-表示式
移位運算子 << 左移 整型表示式<<整型表示式
>> 右移 整型表示式>>整型表示式
關係運算符 > 大於 表示式>表示式
>= 大於等於 表示式>=表示式
< 小於 表示式<表示式
<= 小於等於 表示式<=表示式
== 等於 表示式==表示式
!= 不等於 表示式!= 表示式
邏輯運算子 & 按位與 整型表示式&整型表示式
^ 按位異或 整型表示式^整型表示式
| 按位或 整型表示式|整型表示式
&& 邏輯與 表示式&&表示式
|| 邏輯或 表示式||表示式
條件運算子 ?: 條件運算子 表示式1? 表示式2: 表示式3 右到左
賦值運算子 = 賦值運算子 可修改左值表示式=表示式
/= 除後賦值 可修改左值表示式/=表示式
*= 乘後賦值 可修改左值表示式*=表示式
%= 取模後賦值 可修改左值表示式%=表示式
+= 加後賦值 可修改左值表示式+=表示式
-= 減後賦值 可修改左值表示式-=表示式
<<= 左移後賦值 可修改左值表示式<<=表示式
>>= 右移後賦值 可修改左值表示式>>=表示式
&= 按位與後賦值 可修改左值表示式&=表示式
^= 按位異或後賦值 可修改左值表示式^=表示式
| = 按位或後賦值 可修改左值表示式|=表示式
符號運算子 , 逗號運算子 表示式,表示式,… 左到右