c 運算子優先順序表 重要和易混淆的加粗了

2021-09-24 02:09:21 字數 1851 閱讀 9224

優先順序運算子

結合律助記

1::從左至右

作用域2

a++a--

type()type{}

a()a

.->從左至右

字尾自增減、

函式風格轉型、

函式呼叫、下標、

成員訪問

3!~

++a--a+a-a

(type)sizeof&a

*a

newnewdeletedelete從右至左邏輯非、按位非、

字首自增減、正負、

c 風格轉型、取大小、取址、

指標訪問、

動態記憶體分配

4.*->*從左至右

指向成員指標

5a*ba/ba%b從左至右

乘除、取模 7

<<>>從左至右

按位左右移

從左至右

大小比較

11^從左至右

按位異或

12|從左至右

按位或16

,從左至右

逗號

--摘自《c語言程式設計實用問答》

問題:如何記住運算子的15種優先順序和結合性?    

解答:c語言中運算子種模擬較繁多,優先順序有15種,結合性有兩種。    

如何記憶兩種結合性和15種優先順序?下面講述一種記憶方法。    

結合性有兩種,一種是自左至右,另一種是自右至左,大部分運算子的結合性是自左至右,只有單目運算子、三目運算子的賦值運算子的結合性自右至左。    

優先順序有15種。記憶方法如下:    

記住乙個最高的:構造型別的元素或成員以及小括號。    

記住乙個最低的:逗號運算子。    

剩餘的是

一、二、三、賦值。    

意思是單目、雙目、三目和賦值運算子。    

在諸多運算子中,又分為:    

算術、關係、邏輯。    

兩種位操作運算子中,移位運算子在算術運算子後邊,邏輯位運算子在邏輯運算子的前面。再細分如下:    

算術運算子分     *,/,%高於+,-。    

關係運算子中,〉,〉=,<,<=高於==,!=。    

邏輯運算子中,除了邏輯求反(!)是單目外,邏輯與(&&)高於邏輯或(||)。    

邏輯位運算子中,除了邏輯按位求反(~)外,按位與(&)高於按位半加(^),高於按位或(|)。    

這樣就將15種優先順序都記住了,再將記憶方法總結如下:    

去掉乙個最高的,去掉乙個最低的,剩下的是

一、二、三、賦值。雙目運算子中,順序為算術、關係和邏輯,移位和邏輯位插入其中。

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

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

C 運算子優先順序表

precedence operator description example associativity1 grouping operator array access member access from a pointer member access from an object scopin...

運算子優先順序表

c 語言運算子優先順序 詳細列表 運算子的優先順序 語言中,運算子的運算優先順序共分為15級。1 級最高,15級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。而在乙個運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。運算子的結合性 語言中各運算子的結合性分為兩種...