同一優先順序的運算子,運算次序由結合方向所決定

時間 2021-06-17 07:18:21

1樓:哈利路亞良夢哄

這裡說的 結合方向 是指 程式讀取運算順序的方向。

其實 這種運算的 完全可以參照 數學 裡面的計算順序記憶例如:1*2+3+6-5+6

計算順序是:1*2 =》 2+3 =》5+6=》11-5=》6+6=12 這樣的意思

2樓:山里阿哥

『++』後置的話優先順序就比『-』高,結合方向不同,所以-i++,若i=1,則最後結果為-1,i=2

'++'前置的話和『-』優先順序相同,結合方向不同

3樓:怪咖先生

一般情況下,一元更高的優先順序,低優先順序的賦值運算子。算術運算子優先順序較高,關係和邏輯運算子的優先順序較低的。多數運營商都左結合,一元,一元運算子,賦值運算子有權關聯。

好了,問這個問題的人太多,懶得繼續回答直接貼上來自己的看看。 。 。優先

運營商的名稱或意義

使用相結合的形式方向 br p>說明:

陣列下標陣列名

[常量表示式

左右()

括號(表示式)/函式名(引數列表) br p>。

成員選擇(物件)

物件。成員名稱

- >成員選擇(指標)

物件的指標 - >成員名稱

2 br p> -

減去運營商

- 表示式

右左一元

a>(型別)

蒙上(資料型別)表達

增量運營商富

+ +變數名/變數名+ 元-

遞減運算子

>- 變數名/變數名 -

元值運算元

*指標變數元&

位址運算子

變數名一元

! 邏輯not運算子

!表示式型別

一元位運算子

表示式一元 br p> sizeof

長度操作

sizeof(表示式)的

/ / a>

除了表現形式/

左到右二元運算子

乘法表示式*表示式

二元運算子

餘數(模)

整數表示式/整型表示式

二元運算子

>加表示式+表示式

二元運算子

- >減少表達 - 表達

二元運算子

<< br p>

左邊的表示式變數「型

二元運算子

>>右變數表示式

>>二進位制經營

表示式》表達

左右二元運算子

> = br p>

大於或等於表示式》 =表示式

<少表示式《表示式

二元運算子

小於或等於

表示式< =表示式

二元運算子

== 平等的表達= =表達

左右二元運算子

! =不等於表達! =表達

二元運算子

&按位與表示式&

表達從左至右

的二元運算子

^ 位xor

表示式^表達

左到右二元運算子

| 位或

表達|表達

左右二元運算子

>邏輯表示式&&表達

左右二元運算子

邏輯或表示式| |表達

>左到右

二元運算子

條件運算子

>表示式1?表示式2:表示式3

右左三一元運算子

br />賦值操作

變數=表示式

從右到左

/ =在扣除

變數賦值/ =表達

乘以分配

變數* =表示式

%= 模分配

變數%=表達

+ =加>後賦值變數+ =表示式

- =減去分配

變數 - =表示式

<<離開後變數賦值<< =表示式

>> =

右後變數賦值》 =表示式

&= 後按位與分配

變數&=的表達

^ =按位異或轉讓後,

變數^ =表達

| =按位or轉讓後

變數=表示式

逗號操作符

表示式,表示式,...左

等差數列由左到右

說明:運營商相同的優先順序,操作順序相結合的方向決定。

簡單的初衷是這樣的:! >算術運算子》關係運算子》 &&> | |>賦值運算子

c語言中邏輯運算子非"!"與"&&"或"||"的優先順序怎麼說?

4樓:a羅網天下

邏輯非的優先順序最高,邏輯與次之,邏輯或最低,即:!(非) → &&(與) → ||(或)

記憶口訣:not(非) and(與) or(或)

運算規則

1)&&:當且僅當兩個運算量的值都為"真"時,運算結果為"真",否則為"假"。

2) || :當且僅當兩個運算量的值都為"假"時,運算結果為"假",否則為"真"。

3) ! :當運算量的值為"真"時,運算結果為"假";當運算量的值為"假"時,運算結果為"真"。

例如,假定x=5,則(x>=0) && (x<10)的值為"真",(x<-1) || (x>5)的值為"假"。

優先順序

優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表示式求值順序是從左到右。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。

基本的優先順序需要記住:

指標最優,單目運算優於雙目運算。如正負號。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.

邏輯運算最後結合。

5樓:喜歡種蘑菇

同一優先順序的運算子,結合次序由結合方向所決定。簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子。

6樓:飛雪射鹿笑倚鴛

c語言中邏輯運算子優先順序非"!"與>"&&">"||",建議混合使用的時候加上括號,這樣的**便於自己和其他人維護。

7樓:我喜歡蘆潔

「!」>「&&」>「‖」

8樓:

不知道的就加括號,這是常識,不必記

c語言一道簡單表示式的結合方向和優先順序別的題

9樓:範

第乙個:n+=n-=n*n 是從右往左結合的,n-=n*n=n=n-n*n=-2;前面是 n=n+n=-4;

第二個,不清楚,反正&&是「與」命題,就是必須滿足兩邊同時成立才為真;

第二個問題:輸出「##」和「**」就不用說了,我們說說3 4 5 ,((x%2) ? "##%d" :

"**%d\n")意思是x對2求餘,從x=3開始直到x<6結束,如果除得盡就輸出後面的("**%d「),如果除不盡就數出("##%d");

10樓:go浪人生

賦值運算是從右到左。

1、n+=n-=n*n 可以轉換成 n=n+(n=n-n*n) (n=2) 先算括號可得n=-2 所以n = -2 + (-2) n= -4;

2、優先順序從高到低是括號、邏輯非(!)和位反(~)、乘除、加減、邏輯與(&&)和或(||)、位與和位或…… 所以結果是 1。

3、表示式1 ? 表示式2 : 表示式3 的意思是:

如果表示式1成立就取表示式2的值,否則取表示式3的值。3%2 結果是1,表示成立,所以列印 ##3,4%2 結果是0,表示不成立,所以列印 **4,5和3一樣。

11樓:

優先順序運算子

名稱或含義

使用形式

結合方向說明1

陣列下標

陣列名[常量表示式]

左到右()

圓括號(表示式)/函式名(形參表)

.成員選擇(物件)

物件.成員名

->成員選擇(指標)

物件指標->成員名2-

負號運算子

-表示式

右到左單目運算子

(型別)

強制型別轉換

(資料型別)表示式

++自增運算子

++變數名/變數名++

單目運算子

--自減運算子

--變數名/變數名--

單目運算子

*取值運算子

*指標變數

單目運算子

&取位址運算子

&變數名

單目運算子

!邏輯非運算子

!表示式

單目運算子

~按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof(表示式)3/

除表示式/表示式

左到右雙目運算子*乘

表示式*表示式

雙目運算子

%餘數(取模)

整型表示式/整型表示式

雙目運算子4+

加表示式+表示式

左到右雙目運算子-減

表示式-表示式

雙目運算子

5<<左移變數《表示式

左到右雙目運算子

>>右移變數》表示式

雙目運算子

6>大於表示式》表示式

左到右雙目運算子

>=大於等於

表示式》=表示式

雙目運算子

<小於表示式《表示式

雙目運算子

<=小於等於

表示式<=表示式

雙目運算子7==

等於表示式==表示式

左到右雙目運算子

!=不等於

表示式!= 表示式

雙目運算子8&

按位與表示式&表示式

左到右雙目運算子9^

按位異或

表示式^表示式

左到右雙目運算子10|

按位或表示式|表示式

左到右雙目運算子

11&&

邏輯與表示式&&表示式

左到右雙目運算子

12||

邏輯或表示式||表示式

左到右雙目運算子

13?:

條件運算子

表示式1? 表示式2: 表示式3

右到左三目運算子14=

賦值運算子

變數=表示式

右到左/=

除后賦值

變數/=表示式

*=乘後賦值

變數*=表示式

%=取模後賦值

變數%=表示式

+=加後賦值

變數+=表示式

-=減後賦值

變數-=表示式

<<=左移後賦值

變數<<=表示式

>>=右移後賦值

變數》=表示式

&=按位與後賦值

變數&=表示式

^=按位異或後賦值

變數^=表示式

|=按位或後賦值

變數|=表示式15,

逗號運算子

表示式,表示式,…

左到右從左向右順序運算

說明:同一優先順序的運算子,運算次序由結合方向所決定。

c語言中指標運算子*和自增運算子++的優先順序

12樓:慶年工坊

c語言中自增運算子++作為字尾的話比指標運算子*的優先順序高,作為字首的話與指標運算子*平級。

c語言的運算子主要用於構成表示式,同乙個符號在不同的表示式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表示式。需要特別指出,在c語言標準中,並沒有結合性的說法。

相同優先順序運算子,從左至右依次運算。注意字尾運算優先順序高於字首。因此++i++應解釋為++(i++)。

而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b)|| (b && c)

合理使用優先順序可以極大簡化表示式。

基本表示式 1級

基本表示式(primary expressions),主要是用於運算子之間,做為運算數。

標識,常量,字串文字量,優先順序提公升表示式最優先執行。

優先順序提公升表示式是指圓括號包圍的表示式,如「( expression )」

字尾表示式 2級

postfix-expression [ expression ],陣列下標運算。

postfix-expression (argument-expression-list),函式呼叫,括號內的引數可選。

postfix-expression . identifier,成員訪問,

postfix-expression -> identifier,成員訪問,->號之前應為指標。

postfix-expression ++,字尾自增

postfix-expression --,字尾自減

( type-name )

( type-name ) 復合初始化,c99後新增。

單目/一元運算 3級

++ unary-expression 字首自增

-- unary-expression 字首自減

unary-operator cast-expression 單目轉型表式式, 包括 取位址& ,提領 * , 正號+ ,負號- 位反~ 邏輯否!。

sizeof unary-expression 求型別長度,對表示式求型別長度

sizeof ( type-name ) 求型別長度

強制型別表示式 4級

(type-name ) cast-expression,強制表示式成為type-name指定的型別。

乘法表示式 5級

「 * 」 乘法運算子;「 / 」除法運算子;「 % 」 取餘運算子。

加法運算子 6級

「 + 」加法運算子;「 - 」減法運算子。

移位運算子 7級

<< 左移運算子;>> 右移運算子。

關係運算子 8級

<、<=、>、>=關係運算子。

相等運算子 9級

「 == 」等於運算子;「 != 」不等於運算子。

位與運算子 10級

「 & 」按位與運算子

位異或運算子 11級

「 ∧ 」按位異或運算子(bitwiseexclusive or operator)。

位或運算子 12 級

「 | 」按位或運算子(bitwiseinclusive or operator)。

邏輯與運算子 13級

「&&」邏輯與運算子。

邏輯或運算子 14 級

「 || 」邏輯或運算子。

三元條件運算子 15級

? :條件運算子。

賦值運算子 16 級

=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。

逗號運算子 17級

「,」逗號運算子。

PHP運算子優先順序,php中的運算子優先順序是什麼樣的

php運算子優先順序 由低到高 結合方向 運算子 左 左 or 左 xor 左 and 右 print 右 左 左 左 左 左 左 無 無 左 左 左 右 int float string array object 右 無 new 由此表可以看到,的優先順序最高,其次是 最後才是?而?是左結合的,所...

和 運算子優先順序(C,關於c 運算子優先順序 和 的?

菜刀撒 當然 的優先順序高 p 1 就是先做 p 然後 1 p 1 才是p指標的下一個位置 文庫精選 內容來自使用者 苟燁濤 c c 運算子的優先順序比較 優先順序 運算子 名稱 結合方向 說明 1 陣列下標,圓括號,物件,指標 1 2 型別 sizeof 負號,強制型別轉換,自增,自減,取值,取地...

c 中關於等運算子優先順序的運算

系儉佴綾 你的四個式子是在同一個程式中的且是依此的吧?若是,運算如下i 與 i的區別 i 是先令i參加其它運算,然後再令i加1 而 i是先令i加1,然後再令i參加其它運算。同 對 i j 相當於2 4 6上式運算完後i變為3,j變為4。對 j 5 j i j 5相當於3 5 15,此時j變為3,i也...