竅門(mén): Ctrl+F 快速查找
優(yōu)先級(jí) | 運(yùn)算符 | 名稱(chēng)或含義 | 使用形式 | 結(jié)合方向 | 說(shuō)明 |
---|---|---|---|---|---|
1 | [] | 數(shù)組下標(biāo) | 數(shù)組名[整型表達(dá)式] | 左到右 | |
() | 圓括號(hào) | (表達(dá)式)/函數(shù)名(形參表) | |||
. | 成員選擇(對(duì)象) | 對(duì)象.成員名 | |||
-> | 成員選擇(指針) | 對(duì)象指針->成員名 | |||
2 | - | 負(fù)號(hào)運(yùn)算符 | -表達(dá)式 | 右到左 | 單目運(yùn)算符 |
(類(lèi)型) | 強(qiáng)制類(lèi)型轉(zhuǎn)換 | (數(shù)據(jù)類(lèi)型)表達(dá)式 | |||
++ | 自增運(yùn)算符 | ++變量名/變量名++ | 單目運(yùn)算符 | ||
-- | 自減運(yùn)算符 | --變量名/變量名-- | 單目運(yùn)算符 | ||
* | 取值運(yùn)算符 | *指針表達(dá)式 | 單目運(yùn)算符 | ||
& | 取地址運(yùn)算符 | &左值表達(dá)式 | 單目運(yùn)算符 | ||
! | 邏輯非運(yùn)算符 | !表達(dá)式 | 單目運(yùn)算符 | ||
~ | 按位取反運(yùn)算符 | ~表達(dá)式 | 單目運(yùn)算符 | ||
sizeof | 長(zhǎng)度運(yùn)算符 | sizeof表達(dá)式/sizeof(類(lèi)型) | |||
3 | / | 除 | 表達(dá)式/表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
* | 乘 | 表達(dá)式*表達(dá)式 | 雙目運(yùn)算符 | ||
% | 余數(shù)(取模) | 整型表達(dá)式%整型表達(dá)式 | 雙目運(yùn)算符 | ||
4 | + | 加 | 表達(dá)式+表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
- | 減 | 表達(dá)式-表達(dá)式 | 雙目運(yùn)算符 | ||
5 | << | 左移 | 表達(dá)式<<表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
>> | 右移 | 表達(dá)式>>表達(dá)式 | 雙目運(yùn)算符 | ||
6 | > | 大于 | 表達(dá)式>表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
>= | 大于等于 | 表達(dá)式>=表達(dá)式 | 雙目運(yùn)算符 | ||
< | 小于 | 表達(dá)式<表達(dá)式 | 雙目運(yùn)算符 | ||
<= | 小于等于 | 表達(dá)式<=表達(dá)式 | 雙目運(yùn)算符 | ||
7 | == | 等于 | 表達(dá)式==表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
!= | 不等于 | 表達(dá)式!=表達(dá)式 | 雙目運(yùn)算符 | ||
8 | & | 按位與 | 整型表達(dá)式&整型表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
9 | ^ | 按位異或 | 整型表達(dá)式^整型表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
10 | | | 按位或 | 整型表達(dá)式|整型表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
11 | && | 邏輯與 | 表達(dá)式&&表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
12 | || | 邏輯或 | 表達(dá)式||表達(dá)式 | 左到右 | 雙目運(yùn)算符 |
13 | ?: | 條件運(yùn)算符 | 表達(dá)式1?表達(dá)式2:表達(dá)式3 | 右到左 | 三目運(yùn)算符 |
14 | = | 賦值運(yùn)算符 | 變量=表達(dá)式 | 右到左 | |
/= | 除后賦值 | 變量/=表達(dá)式 | |||
*= | 乘后賦值 | 變量*=表達(dá)式 | |||
%= | 取模后賦值 | 變量%=表達(dá)式 | |||
+= | 加后賦值 | 變量+=表達(dá)式 | |||
-= | 減后賦值 | 變量-=表達(dá)式 | |||
<<= | 左移后賦值 | 變量<<=表達(dá)式 | |||
>>= | 右移后賦值 | 變量>>=表達(dá)式 | |||
&= | 按位與后賦值 | 變量&=表達(dá)式 | |||
^= | 按位異或后賦值 | 變量^=表達(dá)式 | |||
|= | 按位或后賦值 | 變量|=表達(dá)式 | |||
15 | , | 逗號(hào)運(yùn)算符 | 表達(dá)式,表達(dá)式,… | 左到右 | 從左向右順序運(yùn)算 |
在這一級(jí)中,有++、--(做為前綴)、()、+、-(做為單元運(yùn)算符)、!、~
這一級(jí)中都是單元運(yùn)算符,除了其中那一對(duì)特殊的具有改變?nèi)魏芜\(yùn)算優(yōu)先級(jí)的括號(hào)
這此可以看出,在定義表達(dá)式中,那些單元運(yùn)算符的優(yōu)先級(jí)是很高的,可能是因?yàn)樗鼈兌贾苯幼饔糜诓僮鲾?shù)吧
只有兩個(gè)單元運(yùn)算符的優(yōu)先級(jí)不在第一級(jí)中,它們因?yàn)樘厥獾脑虺霈F(xiàn)在了后面
在常規(guī)算術(shù)運(yùn)算符中,有我們經(jīng)常使用的*、/、%、+、-,因?yàn)樗麄兪褂玫幂^多,所以也排在較高的位置。
這一級(jí)是兩個(gè)特殊的位操作符,<< 和 >>,它們是所有二元操作符中除常規(guī)運(yùn)算符外優(yōu)先級(jí)最高的了,可能是因?yàn)榕c比較運(yùn)算符、邏輯運(yùn)算符比起來(lái),這一組操作符進(jìn)行的還是數(shù)值的計(jì)算
比較運(yùn)算符,包括<、>、<=、>=、==、!=,一共六個(gè),這里有一個(gè)特點(diǎn),就小于優(yōu)先于大于
邏輯運(yùn)算符,邏輯運(yùn)算符原本有四種,但用于單元的“非”運(yùn)算符排在了前面,所以這里面就只有&、^、|,再加上兩個(gè)補(bǔ)充的用于提高代碼效率的運(yùn)算符&&、||等共有五個(gè)
賦值運(yùn)算符,這一級(jí)最多,幾乎前面出現(xiàn)過(guò)的二元運(yùn)算符,在這里加上個(gè)“=”號(hào)就成為一個(gè)賦值運(yùn)算符
首先當(dāng)然最基本的賦值運(yùn)算符“=”;然后是常規(guī)算術(shù)運(yùn)算符演變來(lái)的“*=、/=、%=、+=、-=”,它們的順序和常規(guī)算術(shù)符的順序一樣
然后是位移運(yùn)算符和邏輯運(yùn)算符,也按它們演變前的順序排列,為“<<=、>>=、&=、^=、|=”
因?yàn)楸容^運(yùn)算符所產(chǎn)生的結(jié)果的數(shù)據(jù)類(lèi)型和它的運(yùn)算數(shù)的數(shù)據(jù)類(lèi)型不同,所以它們沒(méi)有相應(yīng)的賦值運(yùn)算符
最后一級(jí),就是那兩個(gè)最后的單元運(yùn)算符后綴版的++、--
它們的出現(xiàn)就是為了做為那兩個(gè)前綴版的==、--的補(bǔ)充(那兩個(gè)的優(yōu)先級(jí)太高了,人們需要兩個(gè)優(yōu)先級(jí)不那么高的)
以方便設(shè)計(jì)表達(dá)式,所以這兩個(gè)的優(yōu)先級(jí)當(dāng)然要排在最后了
無(wú)論是從上而下,還是從左到右,都是越上和越前面,優(yōu)先級(jí)越高
第一級(jí):++、--(做為前綴)、()、+、-(做為單元運(yùn)算符時(shí))、!、~
第二級(jí):*、/、%、+、-
第三級(jí):<<、>>位移運(yùn)算
第四級(jí):<、>、<=、>=、==、!=(邏輯比較)
第五級(jí):&、^、|、&&、||
第六級(jí):=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=
第七級(jí):++、--(做為后綴)