C語言當(dāng)中有眾多的運算符,實際開發(fā)編碼過程中,也不會僅僅是a+b這樣的簡單的表達(dá)式,常常是多個變量、多個運算符組合而成的復(fù)合表達(dá)式,因此我們需要明白哪個優(yōu)先級高,應(yīng)該先算哪個,就像我們小學(xué)學(xué)的四則運算符,乘除的優(yōu)先級高于加減是一樣的道理。
下面我們將C語言中的各個運算符列表如下,按照優(yōu)先級從高到低,即最前面,數(shù)字越小的優(yōu)先級越高,越優(yōu)先算。
優(yōu)先級 | 運算符 | 名稱或含義 | 使用形式 | 結(jié)合方向 | 說明 |
1 | [] | 數(shù)組下標(biāo) | 數(shù)組名[長度] | 從左往右 | |
() | 小括號 | (表達(dá)式)或 函數(shù)名(形參表) | |||
. | 取成員 | 結(jié)構(gòu)體名.成員 | |||
-> | 指針 | 結(jié)構(gòu)體指針->成員 | |||
2 | - | 負(fù)號運算符 | -表達(dá)式 | 從右往左 | 單目運算符 |
() | 強制類型轉(zhuǎn)換 | (數(shù)據(jù)類型)表達(dá)式 | |||
++ | 自增運算符 | ++變量或變量++ | 單目運算符 | ||
-- | 自減運算符 | --變量或變量-- | 單目運算符 | ||
* | 取內(nèi)容 | *指針變量 | 單目運算符 | ||
& | 取地址 | &變量名 | 單目運算符 | ||
! | 邏輯非 | !表達(dá)式 | 單目運算符 | ||
~ | 按位取反 | ~整型表達(dá)式 | 單目運算符 | ||
sizeof | 求長度 | sizeof(表達(dá)式) | 單目運算符 | ||
3 | / | 除 | 表達(dá)式 / 表達(dá)式 | 從左往右 | 雙目運算符 |
* | 乘 | 表達(dá)式 * 表達(dá)式 | 雙目運算符 | ||
% | 取余 | 表達(dá)式 / 表達(dá)式 | 雙目運算符 | ||
4 | + | 加 | 表達(dá)式+表達(dá)式 | 從左往右 | 雙目運算符 |
- | 減 | 表達(dá)式-表達(dá)式 | 雙目運算符 | ||
5 | << | 左移 | 變量<<表達(dá)式 | 從左往右 | 雙目運算符 |
>> | 右移 | 變量<<表達(dá)式 | 雙目運算符 | ||
6 | > | 大于 | 表達(dá)式>表達(dá)式 | 從左往右 | 雙目運算符 |
>= | 大于或等于 | 表達(dá)式>=表達(dá)式 | 雙目運算符 | ||
< | 小于 | 表達(dá)式<表達(dá)式 | 雙目運算符 | ||
<= | 小于或等于 | 表達(dá)式<=表達(dá)式 | 雙目運算符 | ||
7 | == | 等于 | 表達(dá)式==表達(dá)式 | 從左往右 | 雙目運算符 |
!= | 不等于 | 表達(dá)式!=表達(dá)式 | 雙目運算符 | ||
8 | & | 按位與 | 表達(dá)式&表達(dá)式 | 從左往右 | 雙目運算符 |
9 | ^ | 按位異或 | 表達(dá)式^表達(dá)式 | 從左往右 | 雙目運算符 |
10 | | | 按位或 | 表達(dá)式|表達(dá)式 | 從左往右 | 雙目運算符 |
11 | && | 邏輯與 | 表達(dá)式&&表達(dá)式 | 從左往右 | 雙目運算符 |
12 | || | 邏輯或 | 表達(dá)式||表達(dá)式 | 從左往右 | 雙目運算符 |
13 | ?: | 條件運算符 | 表達(dá)式1? 表達(dá)式2: 表達(dá)式3 | 從右往左 | 三目運算符 |
14 | = | 賦值運算符 | 變量=表達(dá)式 | 從右往左 | 雙目運算符 |
/= | 除后再賦值 | 變量/=表達(dá)式 | |||
*= | 乘后再賦值 | 變量*=表達(dá)式 | |||
%= | 取余后再賦值 | 變量%=表達(dá)式 | |||
+= | 加后再賦值 | 變量+=表達(dá)式 | |||
-= | 減后再賦值 | 變量-=表達(dá)式 | |||
<<= | 左移再賦值 | 變量<<=表達(dá)式 | |||
>>= | 右移再賦值 | 變量>>=表達(dá)式 | |||
&= | 按位與再賦值 | 變量&=表達(dá)式 | |||
^= | 按位異或再賦值 | 變量^=表達(dá)式 | |||
|= | 按位或再賦值 | 變量|=表達(dá)式 | |||
15 | , | 逗號表達(dá)式 | 表達(dá)式,表達(dá)式,… | 從左往右 |
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程