符號 分節8(運算子的優先順序下)

2021-07-23 13:53:40 字數 911 閱讀 2761

一些容易出錯的優先順序問題

上表中,優先順序同為1 的幾種運算子如果同時出現,那怎麼確定表示式的優先順序呢?

這是很多初學者迷糊的地方。

這些容易出錯的情況,希望讀者好好在編譯器上除錯除錯,這樣印象會深一些。

一定要多除錯,光靠看**,水平是很難提上來的。除錯**才是最長水平的。

&= 按位與後賦值變數&=表示式

^= 按位異或後賦值變^=表示式

|= 按位或後賦值變數|=表示式

15 , 逗號運算子表示式,表示式,„ 左到右 從左向右順 序運算

優先順序問題表示式經常誤認為的結果實際結果 .的優先順序高於* ->操作符用於消除這 個問題

*p.f p 所指物件的字段f (*p).f

對p 取f 偏移,作為指標,然後進行解除 引用操作。*(p.f)

高於* int *ap ap 是個指向int 陣列 的指標

int (*ap)

ap 是個元素為int 指標的陣列 int *(ap)

函式()高於* int *fp() fp 是個函式指標,所 指函式返回int。 int (*fp)()

fp 是個函式,返回 int *

int *(fp())

== 和!=高於位操作(val & mask != 0) (val & mask)!= 0 val & (mask != 0) == 和!=高於賦值符c = getchar() != eof

(c = getchar()) != eof

c = (getchar() != eof)

算術運算子高於位移 運算子

msb << 4 + lsb (msb << 4) + lsb msb << (4 + lsb) 逗號運算子在所有運 算符中優先順序最低

i = 1,2 i = (1,2) (i = 1),2

符號 分節7(運算子的優先順序上)

運算子的優先順序表 c 語言的符號眾多,由這些符號又組合成了各種各樣的運算子。既然是運算子就一定有 其特定的優先順序,下表就是c 語言運算子的優先順序表 優先順序運算子名稱或含義使用形式結合方向說。1 陣列下標陣列名 常量表示式 左到右 圓括號 表示式 函式名 形 參表 成員選擇 物件 物件.成員名...

運算子優先順序 C 運算子優先順序

c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...

運算子優先順序 Python 運算子優先順序

python 運算子優先順序 運算子描述 lambda lambda表示式 or布林 或 and布林 與 not x 布林 非 in,not in 成員測試 is,is not 同一性測試 比較 按位或 按位異或 按位與 移位 加法與減法 乘法 除法與取餘 x,x 正負號 x 按位翻轉 指數 x.a...