運算符的優先級和結合性


 

注1:優先級相同的運算符,運算次序由結合性決定。

  • 比如 3 * 4 / 5 % 6,其中乘號、除號和求余運算符在同一優先級,結合性是“左到右”,因此先計算 3 * 4,再計算 / 5,最后計算 % 6
  • 再如 -i++,符號和自增運算符在同一優先級,結合性是“右到左”,因此 -i++ 相當於 -(i++)


注2:* 目運算符是指操作數的個數,比如單目運算符只有一個操作數,雙目運算符有兩個操作數,而三目運算符則有三個操作數。

注3:通過使用小括號可以提升表達式的優先級至最高。

  • 比如 (1 + 2) * (3 - 4),其中加號、減號運算符的優先級本身是要低於乘號運算符的,但由於使用了小括號,且結合性均是“左到右”,所以先計算 (1 + 2),再計算 (3 - 4),最后才將前兩者的結果相乘

 

優先級
運算符
含義
使用形式
結合性
說明
1
[ ]
數組下標
數組名[整型表達式]
左到右
 
( )
圓括號
(表達式)
 
.
成員選擇(對象)
對象.成員名
 
->
成員選擇(指針)
對象指針->成員名
 
++
自增運算符
變量名++
單目運算符
--
自減運算符
變量名--
單目運算符
2
-
負號運算符
-表達式
右到左
單目運算符
(類型)
強制類型轉換
(數據類型)表達式
單目運算符
++
自增運算符
++變量名
單目運算符
--
自減運算符
--變量名
單目運算符
*
取值運算符
*指針表達式
單目運算符
&
取地址運算符
&左值表達式
單目運算符
!
邏輯非運算符
!表達式
單目運算符
~
按位取反運算符
~表達式
單目運算符
sizeof
長度運算符
sizeof 表達式
sizeof(類型)
單目運算符
3
/
表達式 / 表達式
左到右
雙目運算符
*
表達式 * 表達式
雙目運算符
%
余數(取模)
整型表達式 % 整型表達式
雙目運算符
4
+
表達式 + 表達式
左到右
雙目運算符
-
表達式 - 表達式
雙目運算符
5
<<
左移
表達式 << 表達式
左到右
雙目運算符
>>
右移
表達式 >> 表達式
雙目運算符
6
>
大於
表達式 > 表達式
左到右
雙目運算符
>=
大於等於
表達式 >= 表達式
雙目運算符
<
小於
表達式 < 表達式
雙目運算符
<=
小於等於
表達式 <= 表達式
雙目運算符
7
==
等於
表達式 == 表達式
左到右
雙目運算符
!=
不等於
表達式 != 表達式
雙目運算符
8
&
按位與
整型表達式 & 整型表達式
左到右
雙目運算符
9
^
按位異或
整型表達式 ^ 整型表達式
左到右
雙目運算符
10
|
按位或
整型表達式 | 整型表達式
左到右
雙目運算符
11
&&
邏輯與
表達式 && 表達式
左到右
雙目運算符
12
||
邏輯或
表達式 || 表達式
左到右
雙目運算符
13
?:
條件運算符
表達式1? 表達式2: 表達式3
右到左
三目運算符
14
=
賦值運算符
變量 = 表達式
右到左
雙目運算符
/=
除后賦值
變量 /= 表達式
雙目運算符
*=
乘后賦值
變量 *= 表達式
雙目運算符
%=
取模后賦值
變量 %= 表達式
雙目運算符
+=
加后賦值
變量 += 表達式
雙目運算符
-=
減后賦值
變量 -= 表達式
雙目運算符
<<=
左移后賦值
變量 <<= 表達式
雙目運算符
>>=
右移后賦值
變量 >>= 表達式
雙目運算符
&=
按位與后賦值
變量 &= 表達式
雙目運算符
^=
按位異或后賦值
變量 ^= 表達式
雙目運算符
|=
按位或后賦值
變量 |= 表達式
雙目運算符
15
,
逗號運算符
表達式1,表達式2,表達式3,…
左到右
 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM