c語(yǔ)言運(yùn)算符號(hào)優(yōu)先級(jí)別
1級(jí)優(yōu)先級(jí) 左結(jié)合
() 圓括號(hào)
[] 下標(biāo)運(yùn)算符
-> 指向結(jié)構(gòu)體成員運(yùn)算符
. 結(jié)構(gòu)體成員運(yùn)算符
2級(jí)優(yōu)先級(jí) 右結(jié)合
! 邏輯非運(yùn)算符
~ 按位取反運(yùn)算符
++ 自增運(yùn)算符
-- 自減運(yùn)算符
- 負(fù)號(hào)運(yùn)算符
(類(lèi)型) 類(lèi)型轉(zhuǎn)換運(yùn)算符
* 指針運(yùn)算符
& 地址與運(yùn)算符
sizeof 長(zhǎng)度運(yùn)算符
3級(jí)優(yōu)先級(jí) 左結(jié)合
* 乘法運(yùn)算符
/ 除法運(yùn)算符
% 取余運(yùn)算符
4級(jí)優(yōu)先級(jí) 左結(jié)合
+ 加法運(yùn)算符
- 減法運(yùn)算符
5級(jí)優(yōu)先級(jí) 左結(jié)合
<< 左移運(yùn)算符
>> 右移運(yùn)算符
6級(jí)優(yōu)先級(jí) 左結(jié)合
<、<=、>、>= 關(guān)系運(yùn)算符
7級(jí)優(yōu)先級(jí) 左結(jié)合
== 等于運(yùn)算符
!= 不等于運(yùn)算符
8級(jí)優(yōu)先級(jí) 左結(jié)合
& 按位與運(yùn)算符
9級(jí)優(yōu)先級(jí) 左結(jié)合
^ 按位異或運(yùn)算符
10級(jí)優(yōu)先級(jí) 左結(jié)合
| 按位或運(yùn)算符
11級(jí)優(yōu)先級(jí) 左結(jié)合
&& 邏輯與運(yùn)算符
12級(jí)優(yōu)先級(jí) 左結(jié)合
|| 邏輯或運(yùn)算符
13級(jí)優(yōu)先級(jí) 右結(jié)合
? : 條件運(yùn)算符
14級(jí)優(yōu)先級(jí) 右結(jié)合
= += -= *= /= %= &= ^= |= <<= >>= 全為賦值運(yùn)算符
15級(jí)優(yōu)先級(jí) 左結(jié)合
, 逗號(hào)運(yùn)算符
——————————————————————————————————————
優(yōu)先級(jí)從上到下依次遞減,最上面具有最高的優(yōu)先級(jí),逗號(hào)操作符具有最低的優(yōu)先級(jí)。
所有的優(yōu)先級(jí)中,只有三個(gè)優(yōu)先級(jí)是從右至左結(jié)合的,它們是單目運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符。其它的都是從左至右結(jié)合。
具有最高優(yōu)先級(jí)的其實(shí)并不算是真正的運(yùn)算符,它們算是一類(lèi)特殊的操作。()是與函數(shù)相關(guān),[]與數(shù)組相關(guān),而->及.是取結(jié)構(gòu)成員。
其次是單目運(yùn)算符,所有的單目運(yùn)算符具有相同的優(yōu)先級(jí),因此在我認(rèn)為的 真正的運(yùn)算符中它們具有最高的優(yōu)先級(jí),又由于它們都是從右至左結(jié)合的,因此*p++與*(p++)等效是毫無(wú)疑問(wèn)的。
接下來(lái)是算術(shù)運(yùn)算符,*、/、%的優(yōu)先級(jí)當(dāng)然比+、-高了。
移位運(yùn)算符緊隨其后。
其次的關(guān)系運(yùn)算符中,< <= > >=要比 == !=高一個(gè)級(jí)別,不大好理解。
所有的邏輯操作符都具有不同的優(yōu)先級(jí)(單目運(yùn)算符出外,!和~)
邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。
跟在其后的&&比||高。
接下來(lái)的是條件運(yùn)算符,賦值運(yùn)算符及逗號(hào)運(yùn)算符。
在C語(yǔ)言中,只有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的值對(duì)b或c之中的一個(gè)進(jìn)行求值。
賦值表達(dá)式則規(guī)定先對(duì)右邊的表達(dá)式求值,因此使 a = b = c = 6;成為可能
編輯:admin 最后修改時(shí)間:2018-05-22