算術運算子的優先順序怎麼判斷,算術運算子 邏輯運算子 關係運算子 哪個優先順序高 哪個底?

2021-08-04 19:17:11 字數 6140 閱讀 2255

1樓:匿名使用者

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;成為可能。

2樓:匿名使用者

按照先算小括號——大括號——乘除——加減的順序計算。

3樓:屈老師

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

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

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

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

先乘除(模),後加減。

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

邏輯運算最後計算。

4樓:劉輸套

這個主要靠你的背誦記憶了,其時看的程式多了,自然就記住了~~

5樓:朱薈非

^(乘方)

*/+-

()可以改變運算子優先順序

c語言的運算子的優先順序:邏輯運算子、條件運算子、賦值運算子、關係運算子、算術運算子。它們之間的優先順序

6樓:反轉的天空之城

1、最高階:出現同級別運算子時的結合方向是從左往右(下面級別沒寫結合順序時,預設是從左往右)。

( )圓括號

[ ]下標運算子號

->指向結構體成員運算子

.結構體成員運算子

2、第二級:!、~、++、--、-、(型別)、*、&、sizeof。

這一級都是單目運算子號,這一級的結合方向是從右向左。

比如出現*p++,這時*和++同級別,先算右邊,再左邊。

所以*p++等價於*(p++),而不是(*p)++。

3、第**:+、-、*、/、%

這一級都是算術運算子,結合順序和數學學習中一致的,先乘除取餘數,後加減。

4、第四級:<<、>>

這是左移、右移運算子,位運算時可能需要用到。

5、第五級:<、<=、>、>=、!=、==

這些運算子也稱為關係運算子,其中<、<=、>、>=高於!=、==。

6、第六級:&、^、|

這三個符號也是位運算子號,其中內優先順序,&>^>|。

7、第七級:&&、||

邏輯與&&優先順序大於邏輯或||。

8、第八級:?  :

也稱為條件運算子號,是c語言中唯一的一個三目運算子,結合順序是從右往左。

9、第九級:=、+=、-+、*=、/=、%=

這些運算子也叫做賦值運算子,除此之外,>>=、<<=、&=、^=、|=這些賦值運算子也在這一級別內,結合順序是從右往左。

10、最低階:,

逗號運算子也稱為順序求值運算子,在c語言中,運算級別最低。

c語言是一種計算機程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。它由美國貝爾研究所的d.m.

ritchie於2023年推出,2023年後,c語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。它的應用範圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如微控制器以及嵌入式系統開發。

運算子用於執行程式**運算,會針對一個以上運算元專案來進行運算。例如:2+3,其運算元是2和3,而運算子則是“+”。

在vb2005中運算子大致可以分為5種型別:算術運算子、連線運算子、關係運算子、賦值運算子和邏輯運算子。

7樓:

邏輯——算數——關係——條件判斷——賦值

8樓:匿名使用者

這個可以找一本c++的書看一下,上面有一章就是專門介紹這個的,有個表,一目瞭然,便於記憶,希望你能多看看書!

9樓:匿名使用者

一般而言,單目運算子優先順序較高,賦值運算子優先順序低。算術運算子優先順序較高,關係和邏輯運算子優先順序較低。多數運算子具有左結合性,單目運算子、三目運算子、賦值運算子具有右結合性。

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

優先順序運算子

名稱或含義

使用形式

結合方向說明1

陣列下標

陣列名[常量表示式]

左到右()

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

.成員選擇(物件)

物件.成員名

->成員選擇(指標)

物件指標->成員名2-

負號運算子

-表示式

右到左單目運算子

(型別)

強制型別轉換

(資料型別)表示式

++自增運算子

++變數名/變數名++

單目運算子

--自減運算子

--變數名/變數名--

單目運算子

*取值運算子

*指標變數

單目運算子

&取地址運算子

&變數名

單目運算子

!邏輯非運算子

!表示式

單目運算子

~按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof(表示式)3/

除表示式/表示式

左到右雙目運算子*乘

表示式*表示式

雙目運算子

%餘數(取模)

整型表示式/整型表示式

雙目運算子4+

加表示式+表示式

左到右雙目運算子-減

表示式-表示式

雙目運算子

5<<左移變數《表示式

左到右雙目運算子

>>右移變數》表示式

雙目運算子

6>大於表示式》表示式

左到右雙目運算子

>=大於等於

表示式》=表示式

雙目運算子

<小於表示式《表示式

雙目運算子

<=小於等於

表示式<=表示式

雙目運算子7==

等於表示式==表示式

左到右雙目運算子

!=不等於

表示式!= 表示式

雙目運算子8&

按位與表示式&表示式

左到右雙目運算子9^

按位異或

表示式^表示式

左到右雙目運算子10|

按位或表示式|表示式

左到右雙目運算子

11&&

邏輯與表示式&&表示式

左到右雙目運算子

12||

邏輯或表示式||表示式

左到右雙目運算子

13?:

條件運算子

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

右到左三目運算子14=

賦值運算子

變數=表示式

右到左/=

除後賦值

變數/=表示式

*=乘後賦值

變數*=表示式

%=取模後賦值

變數%=表示式

+=加後賦值

變數+=表示式

-=減後賦值

變數-=表示式

<<=左移後賦值

變數<<=表示式

>>=右移後賦值

變數》=表示式

&=按位與後賦值

變數&=表示式

^=按位異或後賦值

變數^=表示式

|=按位或後賦值

變數|=表示式15,

逗號運算子

表示式,表示式,…

左到右從左向右順序運算

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

簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子

算術運算子 邏輯運算子 關係運算子 哪個優先順序高 哪個底?

10樓:匿名使用者

算術運算子最高

關係運算子次之

邏輯運算子最低

例如:9>3+4&&7

先算3+4 再判斷9是不是大於7,再&&

11樓:匿名使用者

優先順序:

邏輯非!>算術運算子》關係運算子》邏輯與&&>邏輯或||

12樓:匿名使用者

邏輯運算子高

關係運算子低

c語言邏輯運算子包含哪幾個? 它們的優先順序如何?它的運算級別高於算術運算子,賦值運算子嗎?

13樓:匿名使用者

優先順序依次遞減: 算術運算子、關係運算子、邏輯運算子、條件運算子、賦值運算子 絕對正確的。

14樓:會盡快解答

&&(邏輯與) ||(邏輯或) !(邏輯非)

!>&&>||>算數運輸符》賦值運算子(賦值運算子2級運算 差不多可以說是最低的了)

c語言中邏輯運算子的優先順序高於算術運算子

邏輯非 即 操作符 優先順序高於算術運算子。所有的單目操作符優先順序都高於雙目和三目操作符。括號運算子是最高階的運算子。三個邏輯運算子與或非。非的運算子優先順序高於算術運算子。c語言的操作符共有15個優先順序,如下 left toright type sizeof right toleft left...

下面運算子優先順序最高的是ABCD

最高 left to right type sizeof right to left left to right left to right left to right left to right left to right left to right left to right left to r...

excel中公式中運算子的優先順序

運算子優先順序 引用運算子 算術運算子 連線運算子 比較運算子引用運算子優先順序 冒號 單個空格 逗號 算術運算子優先順序 負數 如 1 百分比 乘方 和 乘和除 和 加和減 連線運算子優先順序 連線兩個文字字串 串連 比較運算子 或 小於或大於 不小於 不等於 注 這些比較運算子是屬同級運算 使用...