1、運算符的優先級和結合性
1,優先級
運算符一覽表中,運算符越靠上,優先級越高。函數
2,結合性
假如用O表示須要兩個操做數的雙目運算符,那麼對於表達式aObOc:spa
左結合運算符會將表達式解釋爲 (aOb)Oc 【左結合性】指針
右結合運算符會將表達式解釋爲 aO(bOc) 【右結合性】ci
總結:遇到優先級相同的運算符時,結合性指明瞭表達式應從左往右運算仍是從右往左運算。table
2、運算符一覽表
優先級class |
運算符總結 |
形式tab |
名稱類型轉換 |
結合性di |
1 |
() |
x(y) |
函數調用運算符 |
左 |
1 |
[] |
X[y] |
下標運算符 |
左 |
1 |
. |
x.y |
.運算符(句點運算符) |
左 |
1 |
-> |
x->y |
->運算符(箭頭運算符) |
左 |
1 |
++ |
x++ |
後置遞增運算符 |
左 |
1 |
-- |
y-- |
後置遞減運算符 |
左 |
2 |
++ |
++x |
前置遞增運算符 |
右 |
2 |
-- |
--y |
前置遞減運算符 |
右 |
2 |
sizeof |
sizeof x |
sizeof運算符 |
右 |
2 |
& |
&x |
單目運算符&(取址運算符) |
右 |
2 |
* |
*x |
單目運算符*(指針運算符) |
右 |
2 |
+ |
+x |
單目運算符+ |
右 |
2 |
- |
-x |
單目運算符- |
右 |
2 |
~ |
~x |
~運算符(按位求補運算符) |
右 |
3 |
! |
!x |
邏輯非運算符 |
右 |
3 |
() |
(x)y |
類型轉換運算符 |
右 |
4 |
* |
x * y |
雙目運算符* |
左 |
4 |
/ |
x / y |
/運算符 |
左 |
4 |
% |
x % y |
%運算符 |
左 |
5 |
+ |
x + y |
雙目運算符+ |
左 |
5 |
- |
x - y |
雙目運算符- |
左 |
6 |
<< |
x << y |
<<運算符 |
左 |
6 |
>> |
x >> y |
>>運算符 |
左 |
7 |
< |
x < y |
<運算符 |
左 |
7 |
<= |
x <= y |
<=運算符 |
左 |
7 |
> |
x > y |
>運算符 |
左 |
7 |
>= |
x >= y |
>=運算符 |
左 |
8 |
== |
x == y |
==運算符 |
左 |
8 |
!= |
x != y |
!=運算符 |
左 |
9 |
& |
x & y |
按位與運算符 |
左 |
10 |
^ |
x ^ y |
按位異或運算符 |
左 |
11 |
| |
x | y |
按位或運算符 |
左 |
12 |
&& |
x && y |
邏輯與運算符 |
左 |
13 |
|| |
x || y |
邏輯或運算符 |
左 |
14 |
? : |
x ? y : z |
條件運算符 |
右 |
15 |
= |
x = y |
基本賦值運算符 |
右 |
15 |
+= -= *= /= <<= >>= &= ^= |= |
|
複合賦值運算符 |
右 |
16 |
, |
x , y |
逗號運算符 |
左 |