C語言運算符優先級大全,C語言運算符優先級由高到低?

C語言運算符優先級由高到低分為優先級15級:
1、圓括號【()】、下標運算符【[]】、分量運算符的指向結構體成員運算符【->】、結構體成員運算符【.】;
2、邏輯非運算符【!】、按位取反運算符【~】、自增自減運算符【++】【 --】、負號運算符【-】、類型轉換運算符【(類型)】、指針運算符和取地址運算符【*】【&】、長度運算符【sizeof】;
3、乘法運算符【*】、除法運算符【/】、取余運算符【%】;
4、加法運算符【+】、減法運算符【-】;
5、左移動運算符【<<】、右移動運算符【>>】;
6、關系運算符【< 】【>】【<=】【 >= 】;
7、等于運算符【==】、不等于運算符【!=】;
8、按位與運算符【&】;
9、按位異或運算符【^】;
10、按位或運算符【|】;
11、邏輯與運算符【&&】;
12、邏輯或運算符【||】;
【C語言運算符優先級大全,C語言運算符優先級由高到低?】13、條件運算符【?:】;
14、賦值運算符【=】【/=】【*=】【%=】【+=】【-=】【<<=】【>>=】【&=】【^=】【|=】;
15、逗號運算符【,】 。

C語言運算符優先級大全,C語言運算符優先級由高到低?

文章插圖
C語言中邏輯運算符_ ___的優先級高于算術運算符邏輯非(即‘!’操作符) 優先級高于算術運算符 。
所有的單目操作符優先級都高于雙目和三目操作符 。
C語言運算符優先級大全,C語言運算符優先級由高到低?

文章插圖
c語言哪個運算符優先級是2優先級為2級的是:!、~、++、--、-、*、&、(類型名)這個是強制轉換運算符、sizeof
C語言上的符號優先級是怎樣的 1級優先級 左結合() 圓括號[] 下標運算符-> 指向結構體成員運算符. 結構體成員運算符2級優先級 右結合! 邏輯非運算符~ 按位取反運算符++ 前綴增量運算符-- 前綴增量運算符+ 正號運算符- 負號運算符(類型) 類型轉換運算符* 指針運算符& 地址與運算符sizeof 長度運算符3級優先級 左結合* 乘法運算符/ 除法運算符% 取余運算符4級優先級 左結合+ 加法運算符- 減法運算符5級優先級 左結合<< 左移運算符>> 右移運算符6級優先級 左結合<、<=、>、>= 關系運算符7級優先級 左結合== 等于運算符!= 不等于運算符8級優先級 左結合& 按位與運算符9級優先級 左結合^ 按位異或運算符10級優先級 左結合| 按位或運算符11級優先級 左結合&& 邏輯與運算符12級優先級 左結合|| 邏輯或運算符13級優先級 右結合? : 條件運算符14級優先級 右結合= += -= *= /= %= &= ^= |= <<= >>= 全為賦值運算符15級優先級 左結合?。?逗號運算符優先級從上到下依次遞減,最上面具有最高的優先級,逗號操作符具有最低的優先級 。所有的優先級中,只有三個優先級是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符 。其它的都是從左至右結合 。具有最高優先級的其實并不算是真正的運算符,它們算是一類特殊的操作 。()是與函數相關,[]與數組相關,而->及.是取結構成員 。其次是單目運算符 , 所有的單目運算符具有相同的優先級,因此在我認為的 真正的運算符中它們具有最高的優先級 , 又由于它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的 。另外在C語言里 沒有前置后置之分 因為++ --- 是右結合所以 右側優先運算 表現為 "后置優先級比較高" 的假象 前置和后置的區分是因為運算符重載而后加入C++的接下來是算術運算符,*、/、%的優先級當然比+、-高了 。移位運算符緊隨其后 。其次的關系運算符中,< <= > >=要比 == !=高一個級別,不大好理解 。所有的邏輯操作符都具有不同的優先級(單目運算符出外,!和~)邏輯位操作符的"與"比"或"高,而"異或"則在它們之間 。跟在其后的&&比||高 。接下來的是條件運算符,賦值運算符及逗號運算符 。在C語言中,只有4個運算符規定了運算方向,它們是&&、| |、條件運算符及賦值運算符 。&&、| |都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值時,就不再計算右邊表達式的值 。如 a = 0 && b; &&運算符的左邊位0,則右邊表達式b就不再判斷 。在條件運算符中 。如a?b:c;先判斷a的值,再根據a的值對b或c之中的一個進行求值 。賦值表達式則規定先對右邊的表達式求值,因此使 a = b = c = 6;成為可能 。

    推薦閱讀