1級優(yōu)先級 左結(jié)合
() 圓括號
[] 下標(biāo)運(yùn)算符
-> 指向結(jié)構(gòu)體成員運(yùn)算符
. 結(jié)構(gòu)體成員運(yùn)算符
2級優(yōu)先級 右結(jié)合
! 邏輯非運(yùn)算符
~ 按位取反運(yùn)算符
++ 前綴增量運(yùn)算符
-- 前綴增量運(yùn)算符
+ 正號運(yùn)算符
- 負(fù)號運(yùn)算符
(類型)
類型轉(zhuǎn)換運(yùn)算符
* 指針運(yùn)算符
& 地址與運(yùn)算符
sizeof 長度運(yùn)算符
3級優(yōu)
先級 左結(jié)合
* 乘法運(yùn)算符
/ 除法運(yùn)算符
% 取余運(yùn)算符
4級優(yōu)先級
左結(jié)合
+ 加法運(yùn)算符
- 減法運(yùn)算符
5級優(yōu)先級 左結(jié)合
<<
左移運(yùn)算符
>> 右移運(yùn)算符
6級優(yōu)先級 左結(jié)合
<、<=、&
gt;、>= 關(guān)系運(yùn)算符
7級優(yōu)先級 左結(jié)合
== 等于運(yùn)算符
!= 不等于運(yùn)算符
8級優(yōu)先級 左結(jié)合
& 按位與運(yùn)算符
9級優(yōu)先級 左結(jié)合
^
按位異或運(yùn)算符
10級優(yōu)先級 左結(jié)合
| 按位或運(yùn)算符
11級優(yōu)先級 左結(jié)合
&& 邏輯與運(yùn)算符
12級優(yōu)先級 左結(jié)合
|| 邏輯或運(yùn)算符
13級優(yōu)
先級 右結(jié)合
? : 條件運(yùn)算符
14級優(yōu)先級 右結(jié)合
= += -= *= /=
%= &= ^= |= <<= >>= 全為賦值運(yùn)算符
15級優(yōu)先級 左結(jié)合
, 逗號運(yùn)算符
優(yōu)先級從上到下依次遞減,最上面具有最高的優(yōu)先級,逗號操作符具有最低的優(yōu)先級。
所有的優(yōu)先級中,只有三個(gè)優(yōu)
先級是從右至左結(jié)合的,它們是單目運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符。其它的都是從左至右結(jié)合。
具有最高優(yōu)先級的其實(shí)并不算是真正的運(yùn)算符,它
們算是一類特殊的操作。()是與函數(shù)相關(guān),[]與數(shù)組相關(guān),而->及.是取結(jié)構(gòu)成員。
其次是單目運(yùn)算符,所有的單目運(yùn)算符具有相同的優(yōu)
先級,因此在我認(rèn)為的 真正的運(yùn)算符中它們具有最高的優(yōu)先級,又由于它們都是從右至左結(jié)合的,因此*p++與*(p++)等效是毫無疑問的。
另外在C語言里 沒有前置后置之分 因?yàn)?+ --- 是右結(jié)合所以 右側(cè)優(yōu)先運(yùn)算 表現(xiàn)為 "后置優(yōu)先級比較高" 的假象
前置和后置的區(qū)分是因?yàn)檫\(yùn)算符重載而后加入C++的
接下來是算術(shù)運(yùn)算符,*、/、%的優(yōu)先級當(dāng)然比+、-高了。
移位運(yùn)算符緊隨其
后。
其次的關(guān)系運(yùn)算符中,< <= > >=要比 == !=高一個(gè)級別,不大好理解。
所有的邏輯操作
符都具有不同的優(yōu)先級(單目運(yùn)算符出外,!和~)
邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。
跟在其后
的&&比||高。
接下來的是條件運(yùn)算符,賦值運(yùn)算符及逗號運(yùn)算符。
在C語言中,只有4個(gè)運(yùn)算符規(guī)定了運(yùn)算方向,
它們是&&、| |、條件運(yùn)算符及賦值運(yùn)算符。
&&、|
|都是先計(jì)算左邊表達(dá)式的值,當(dāng)左邊表達(dá)式的值能確定整個(gè)表達(dá)式的值時(shí),就不再計(jì)算右邊表達(dá)式的值。如 a = 0 && b;
&&運(yùn)算符的左邊位0,則右邊表達(dá)式b就不再判斷。
在條件運(yùn)算符中。如a?b:c;先判斷a的值,再根據(jù)a的值對b或c之中
的一個(gè)進(jìn)行求值。
賦值表達(dá)式則規(guī)定先對右邊的表達(dá)式求值,因此使 a = b = c = 6;成為可能。
from:
http://wenwen.soso.com/z/q169038487.htmhttp://www.cppreference.com/wiki/operator_precedencehttp://blog.chinaunix.net/u1/34426/showart_423858.html
posted on 2010-03-16 12:10
chatler 閱讀(317)
評論(0) 編輯 收藏 引用 所屬分類:
C++_BASIS