C語言中的運算符和結(jié)合性問題
C語言運算符和結(jié)合性
| 優(yōu)先級 | 運算符 | 含義 | 要求運算對象的個數(shù) | 結(jié)合方向 |
|---|---|---|---|---|
| 1 | () | 圓括號 | 自左至右 | |
| 1 | [] | 下標(biāo)運算符 | 自左至右 | |
| 1 | -> | 指向結(jié)構(gòu)體成員運算符 | 自左至右 | |
| 1 | · | 結(jié)構(gòu)體成員運算符 | 自左至右 | |
| 2 | ! | 邏輯非運算符 | 1(單目運算符) | 自右至左 |
| 2 | ~ | 按位取反運算符 | 1(單目運算符) | 自右至左 |
| 2 | ++ | 自增運算符 | 1(單目運算符) | 自右至左 |
| 2 | -- | 自減運算符 | 1(單目運算符) | 自右至左 |
| 2 | - | 負(fù)號運算符 | 1(單目運算符) | 自右至左 |
| 2 | (類型) | 類型轉(zhuǎn)換運算符 | 1(單目運算符) | 自右至左 |
| 2 | * | 指針運算符 | 1(單目運算符) | 自右至左 |
| 2 | & | 取地址運算符 | 1(單目運算符) | 自右至左 |
| 2 | sizeof | 長度運算符 | 1(單目運算符) | 自右至左 |
| 3 | * | 乘法運算符 | 2(雙目運算符) | 自左至右 |
| 3 | / | 除法運算符 | 2(雙目運算符) | 自左至右 |
| 3 | % | 求余運算符 | 2(雙目運算符) | 自左至右 |
| 4 | + | 加法運算符 | 2(雙目運算符) | 自左至右 |
| 4 | - | 減法運算符 | 2(雙目運算符) | 自左至右 |
| 5 | << | 左移運算符 | 2(雙目運算符) | 自左至右 |
| 5 | >> | 左移運算符 | 2(雙目運算符) | 自左至右 |
| 6 | < <= > >= | 關(guān)系運算符 | 2(雙目運算符) | 自左至右 |
| 7 | == | 等于運算符 | 2(雙目運算符) | 自左至右 |
| 7 | != | 不等于運算符 | 2(雙目運算符) | 自左至右 |
| 8 | & | 按位與運算符 | 2(雙目運算符) | 自左至右 |
| 9 | ^ | 按位異或運算符 | 2(雙目運算符) | 自左至右 |
| 10 | | | 按位或運算符 | 2(雙目運算符) | 自左至右 |
| 11 | && | 邏輯與運算符 | 2(雙目運算符) | 自左至右 |
| 12 | || | 邏輯或運算符 | 2(雙目運算符) | 自左至右 |
| 13 | ? : | 條件運算符 | 3(三目運算符) | 自右至左 |
| 14 | = += -= *= /= %= >>= <<= &= ^= |= | 賦值運算符 | 2(二目運算符) | 自右至左 |
| 15 | , | 逗號運算符(順序求值運算符) | 自左至右 |
同一優(yōu)先級的運算符,運算次序由結(jié)合方向決定。
-和++為同一優(yōu)先級,結(jié)合方向為自右至左,因此-i++相當(dāng)于-(i++);
不同的運算符要求有不同的運算對象個數(shù),如+和-為雙目運算符,要求在運算符兩側(cè)各有一個運算對象(3+5)。
而++和-(負(fù)號)運算符是單目運算符,只能在運算符的一側(cè)出現(xiàn)一個運算對象(如-a、i++、--i、(float)i、sizeof(int)、*p等)。
條件運算符是C語言中唯一的三木運算符,如x?a:b。
從上表中可以大致歸納出各類運算符的優(yōu)先級

以上的優(yōu)先級別由上到下遞減。初等運算符優(yōu)先級最高,逗號運算符優(yōu)先級最低。
位運算符的優(yōu)先級比較分散(有的在算術(shù)運算符之前(如~),有的在關(guān)系運算符之前(如<<和>>),有的在關(guān)系運算符之后(如&、^、|))。
為了容易記憶,使用位運算符時可加圓括號。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用C++結(jié)合OpenCV進(jìn)行圖像處理與分類
在計算機(jī)視覺領(lǐng)域,OpenCV與C++結(jié)合能高效處理和分類圖像,C++的高執(zhí)行效率適合大規(guī)模數(shù)據(jù)處理,OpenCV提供豐富的功能,如圖像預(yù)處理和機(jī)器學(xué)習(xí)算法,安裝OpenCV需要配置環(huán)境和添加庫文件,本文詳細(xì)介紹了使用C++和OpenCV進(jìn)行圖像分類的過程,包括使用SVM和深度學(xué)習(xí)模型2024-09-09
C++實現(xiàn)簡單的學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)簡單的學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
epoll多路復(fù)用的一個實例程序(C實現(xiàn))
這篇文章主要為大家詳細(xì)介紹了epoll多路復(fù)用的一個實例程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
C++數(shù)據(jù)結(jié)構(gòu)之哈希算法詳解
這篇文章主要為大家詳細(xì)介紹了C++數(shù)據(jù)結(jié)構(gòu)中哈希算法的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,希望對大家有所幫助2022-12-12

