c c 系列的運算子優先順序總結

2021-06-26 18:53:33 字數 2296 閱讀 2070

經常寫程式的時候,遇到運算子優先順序的問題,令我汗顏的是,查書的次數挺多的%26hellip;%26hellip;狠狠心,總結下。不過還要結合大量的程式設計實踐來深入腦海。

1、首先永遠忘不了的是,逗號運算子級別最低,毫無爭議的還有()括起來的,人工設定了最高優先順序,先算括號裡的。

2、非人為的,就是四個,函式呼叫(),陣列下標,點運算子,間接-%26gt;運算子。他們是優先順序最高的,從左到右。拿-%26gt;記憶結合性

3、還有最起碼知道,所有的單目運算子具有相同級別的優先順序,記住是所有的。且記住都是從右到左

比如:正負號+i和-i,自增自減++i和i--,取地值%26amp;a,取值*a,取型別大小運算子sizeof(int),邏輯非!a,邏輯按位取反~a,他們都是單目的運算子,且同時出現在表示式,運算順序是右到左。

4、知道乙個規律,總體的運算子的優先順序是 %26nbsp;單目 %26nbsp;%26gt; %26nbsp;雙目 %26nbsp;%26gt; %26nbsp;三目 %26nbsp;%26gt; %26nbsp;賦值(包含復合賦值),除去幾個特殊的。

%26nbsp;

有了大前提,接下來是高潮!

用網友總結的乙個順口溜加上我的改進,並平時結合實踐一定能事半功倍的牢記!"張飛算計魏延,關羽,或者調戲婦女",什麼意思呢?

%26nbsp;

以下是優先順序從高到底的順序,而結合性根據常識就能判斷:

%26nbsp;

張飛=邏輯非(飛)運算子 %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp;!(提醒前面提到的單目,除那四個之外,單目是最高端別的,都是右到左,拿sizeof()來記憶提醒是右到左

%26nbsp;

算計=算(算)術運算子 %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; 其次是+-*/%(小學數學就教的的順序,先算*/%,再算加減,從左到右,小學就是這樣的,沒變)

%26nbsp;

魏延=移位(魏)運算子 %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp;然後是移位運算子《 》 ,說1000 0011誰移4位,那肯定是左到右順序計算,10000011%26lt;4,相當於除法

%26nbsp;

關羽=關(關羽)系和位與(魏羽)運算子 %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp; %26nbsp;接著是關係運算子,這裡注意點:==和!=最後算,還有結合性左到右,其實根據常識也是如此。

然後是位與運算子%26amp;(~是單目)

或者=位或                  其次位或|,當然如果寫程式多,自然記得位異或^,不用想必夾在中間,學過組成原理就知道左到右的順序

%26nbsp;這才能輪的上邏輯與%26amp;%26amp;(羽),然後是邏輯或||(或者),結合性想到短路操作,就知道是左到右。

%26nbsp;

調戲=(調)條件運算子?:(三目)      最後,條件運算子,也就是級別低的三目運算子   

婦女=賦值和復合賦值             最後是,賦值運算子=和復合的賦值運算子,比如-=,+=,*=,/=,%=,%26amp;=,*=,《=,》=,|=,^=                           %26hellip;%26hellip;,都是右到左的結合性

%26nbsp;

注意:1、如果程式段中的運算子很多,最好是括號括起來,不要太自信。

2、c++的運算子,增加了幾個,不過原c的,還是適用的。

3、邏輯運算子%26amp;%26amp;和||和!計算的是整個表示式的邏輯真值,而位運算子的%26amp;和^和~和|,計算的是二進位制數的每一位

4、這個順口溜要遵循大前提那4條,暨:

人為最高是括號包住的

自然最高是四個(),,點,%26mdash;%26gt;,左到右。

逗號最低

**中,單目最高,且單目都是右到左。其次雙目和三目。

%26nbsp;

c c 系列的運算子優先順序總結

經常寫程式的時候,遇到運算子優先順序的問題,令我汗顏的是,查書的次數挺多的 26hellip 26hellip 狠狠心,總結下。不過還要結合大量的程式設計實踐來深入腦海。1 首先永遠忘不了的是,逗號運算子級別最低,毫無爭議的還有 括起來的,人工設定了最高優先順序,先算括號裡的。2 非人為的,就是四個...

C C 運算子優先順序

c運算子優先順序 運算子及結合性 功能 用法 l 函式呼叫 name expr list 下標 variable expr 成員選擇 object.member 成員選擇 pointer member r 後輟自增 lvalue 後輟自減 lvalue r sizeof 前輟自增 lvalue 前輟...

C C 運算子優先順序

c語言中的運算子 說明 運算子結合性 初等運算子 單目運算子 型別 sizeof 算術運算子 算術運算子 移位運算子 關係運算子 關係運算子 按位與 按位異或 按位或 邏輯與 邏輯或 條件運算子 賦值運算子 逗號運算子 c 語言中的運算子 運算子描述結合性 二元作用域 一元作用域 typeid dy...