c語言中的運算子優先順序高低是什麼意思

2021-03-05 14:46:58 字數 6851 閱讀 6430

1樓:學雅思

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

運算子的優先順序是從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結合,同一行中的運算子的優先順序相同。

擴充套件資料

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

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

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

指標最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。

請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7。邏輯運算最後結合。

2樓:匿名使用者

要了解c語言運算子優先順序高低就先從通常數學上運算優先順序高低說起。

通常,一個數學算式裡如果有加減乘除和括號,我們會先算括號裡面的式子,再算括號外面的乘除再然後才是加減。那麼這時候我們說括號的優先順序比加減乘除的要高,所以我們就先計算括號裡的式子。然後是乘除,再然後才是加減。

其中加減乘除就是運算子。所以運算子的高低決定了運算的先後順序。

同理。c語言中的運算優先順序和這一個樣,只要你把運算子的優先順序記住就可以了。

3樓:匿名使用者

比如 1+3*3

因為 *的優先順序比+高,所以先執行3*3,在+1。

其實這個不用在意,也不需要背,只要在你需要的運算順序下加()就行了。

比如 1+(3*3)

4樓:擁抱枯木

就是有不同運算子出現在同一個表示式中,求表示式的值時,優先順序高的運算子先結合求值再求優先順序低的,比如a+b*c,明顯*的優先順序比+高,所以先算b*c,得到的值加上a。另外有些符號優先順序相同,那就有從左到右結合,和從右到左結合,還需要再詳細嗎?

5樓:匿名使用者

誰的優先順序別高 就先執行它 的運算

c語言提供3種邏輯運算子,按優先順序高低它們分別是

6樓:文化廚子

c語言中的三種邏輯運算子為:邏輯非(!),邏輯與(&&)、邏輯或(||)。

按優先順序從高到低排列:!、&&、||,!的優先順序最高,&&的優先順序居中,||的優先順序最低。

7樓:匿名使用者

您好,sa團隊給出的答案優先次序:!(非)→&&(與)→||(或)

8樓:匿名使用者

邏輯運算子的優先順序是相同的,且只有兩個。這兩個邏輯運算子是 : &&、||

c語言中運算子優先順序最小的是

9樓:星月小木木

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

所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。其它的都是從左至右結合。

具有最高優先順序的其實並不算是真正的運算子,它們算是一類特殊的操作。()是與函式相關,與陣列相關,而->及.是取結構成員。

其次是單目運算子,所有的單目運算子具有相同的優先順序,因此在我認為的 真正的運算子中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的

接下來是算術運算子,*、/、%的優先順序當然比+、-高了。

移位運算子緊隨其後。

其次的關係運算子中,< <= > >=要比 == !=高一個級別,不大好理解。

所有的邏輯操作符都具有不同的優先順序(單目運算子除外,!和~)

邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。

跟在其後的&&比||高。

接下來的是條件運算子,賦值運算子及逗號運算子。

在c語言中,只有4個運算子規定了運算方向,它們是&&、| |、條件運算子及賦值運算子。

&&、| |都是先計算左邊表示式的值,當左邊表示式的值能確定整個表示式的值時,就不再計算右邊表示式的值。如 a = 0 && b; &&運算子的左邊位為0,則右邊表示式b就不再判斷。

在條件運算子中。如a?b:c;先判斷a的值,再根據a的值對b或c之中的一個進行求值。

賦值表示式則規定先對右邊的表示式求值,因此使 a = b = c = 6;成為可能。

10樓:匿名使用者

(1)先(括號)內層,後(括號)外層。

解釋:有擴號時,最內層的括號中的東西先算,再一層層向外。

(2)先函式,後運算。

解釋:式中有函式,例如sqrt(),fabs(),sin()之類,先算函式。

(3)先算術,後關係,再邏輯。

解釋:邏輯表示式中,混有算術運算,要先算算術(加減乘除,函式)運算,再算關係(大小,等不等)運算。最後算邏輯(或與非),得到真假。

(4)先乘除,後加減。

解釋:同算術一樣,先做乘除,後做加減。

邏輯運算子「與」又叫邏輯乘,邏輯運算子「或」,又叫邏輯加,按先乘除,後加減,「與」比「或」優先。

(5)先左,後右

解釋:同級運算,先做左邊的,後做右邊的。

(6)搞不清,加括號。

解釋:自己寫算術表示式和邏輯表示式時,搞不清運算子優先順序,可以加括號,括號裡的總是先。

11樓:匿名使用者

%是除法取餘運算。

用於整數與整數運算。否則,不同的編譯器會得不同結果。

'%'為取餘運算子,用於把它前面的整數值或表示式除以其後面的整數值或表示式,結果為不能被後面的整數或表示式整除的最小整數,它後面的數值應該為大於1的正整數。如表中所示的"13%7",就表示13 除以7餘6。

作為雙目運算子,左右運算元可以是數值,也可以是表示式。

但'%'運算子的左右運算元必須是整數。

負數取餘運算ms vc++ 編譯器:

-4 % 6 = -4

6 % -4 = 2

12樓:匿名使用者

逗號,例如:for( i = 0, j = 0; i < 10; i++, j++ )

之後才是:=+=

-=*=

/=%=

&=^=

|=<<=

>>=

13樓:匿名使用者

記住乘除高於加減,其他的都用括號,不會出錯

14樓:是是非飛

「 ,」 逗號運算子

c語言運算子優先順序從高到低的順序依次為?

15樓:同暢碧靜晨

一共有十五個優先順序:1()

.->2!

~-(負號)

++--

&(取變數地址)*

(type)(強制型別)

sizeof3*

/%4+

-5>>

<<6>>=<<=7==

!=8&9

^10|11

&&12

||13

?:14=+=

-=*=

/=%=

|=^=

&=>>=

<<=15,

就著多吧

結合性:2

1314

是從右至左

其他都是

從左至右

16樓:匿名使用者

遵循數**算優先順序順序.

c語言中運算子有哪幾種,優先順序順序是怎樣

17樓:楓璽

c語言中,運算子除了常見的三大類,算術運算子、關

系運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子。

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

一級運算子:標識,常量,字串文字量,優先順序提升表示式最優先執行。

二級運算子:陣列下標運算(expression)、函式呼叫(argument-expression-list)、成員訪問(identifier、 -> identifier)、字尾自增(i++)、字尾自減(i--)、 複合初始化(initializer-list)。

**運算子:字首自增(++i)、字首自減(--i)、單目轉型表式式(取地址& ,提領 * , 正號+ ,負號-、 位反~ 邏輯否!)、求型別長度(sizeof unary-expression)。

四級運算子:強制表示式成為type-name指定的型別( type-name ) cast-expression。

五級運算子:「 * 」 乘法運算子。

六級運算子:「 + 」加法運算子。

七級運算子:<< 左移運算子;>> 右移運算子。

八級運算子:<、<=、>、>=關係運算子。

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

十級運算子:「 & 」按位與運算子。

十一級運算子:「 ∧ 」按位異或運算子。

十二級運算子:「 | 」按位或運算子。

十**運算子:「&&」邏輯與運算子。

十四級運算子:「 || 」邏輯或運算子。

十五級運算子:? :條件運算子。

擴充套件資料

c語言中各運算子的結合性:

1、左結合性(自左至右):

例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。

2、右結合性(自右至左)

自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算子是賦值運算子。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。

c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

18樓:匿名使用者

c語言的運算子包括單目運算子、雙目運算子、三目運算子,優先順序如下:

第1優先順序:各種括號,如()、等、成員運算子 . ;

第2優先順序:所有單目運算子,如++、--、!、~等;

第3優先順序:乘法運算子*、除法運算子/、求餘運算子%;

第4優先順序:加法運算子+、減法運算子-;

第5優先順序:移位運算子<<、>>;

第6優先順序:大於運算子》、大於等於運算子》=、小於運算子<、小於等於運算子<=;

第7優先順序:等於運算子==、不等於運算子!=;

第8優先順序:按位與運算子&;

第9優先順序:按位異或運算子^;

第10優先順序:按位或運算子|;

第11優先順序:邏輯與運算子&&;

第12優先順序:邏輯或運算子||;

第13優先順序:三目條件運算子 ?: ;

第14優先順序:各種賦值運算子,如=、+=、-=、*=、/= 等;

第15優先順序:逗號運算, 。

19樓:

優先順序 運算子 含義 運算子型別 結合方向

15 () 圓括號 單目 自左向右

下標運算子

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

、 結構體成員運算子

14 ! 邏輯非運算子 自右向左

~ 按位取反運算子

++ 自增運算子

-- 自減運算子

- 負號運算子

(型別) 型別轉換運算子

* 指標運算子

& 地址運算子

sizeof 長度運算子

13 * 乘法運算子 雙目 自左向右

/ 除法運算子

% 求餘運算子

12 + 加法運算子

- 減法運算子

11 << 左移運算子

>> 右移運算子

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

9 == 等於運算子

!= 不等於運算子

8 & 按位與運算子

7 ^ 按位異或運算子

6 | 按位或運算子

5 && 邏輯與運算子

4 || 邏輯或運算子

3 ?: 條件運算子 三目 自右向左

2 =、+=、-=、*=、

/=、%=、>>=、

<<=、&=、^=、|= 賦值運算子 雙目

1 , 逗號運算子 雙目 自左向右

中國物聯網校企聯盟技術部

關於c運算子優先順序和的,C中運算子優先順序的問題

a和a 含義不同啊,a 表明先執行後加減,所以還是從0開始的。c 中運算子優先順序的問題 假定陣列是 int y 指標是 int symbol y int x 222 語句 symbol x 因為是字尾 表示式裡不自增,故計算分2步走,版1 1 symbol x 1 2 symbol symbol ...

c語言中運算子有哪幾種,優先順序順序是怎樣

c語言中,運算子除了常見的三大類,算術運算子 關 系運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子。運算子的運算優先順序共分為15 級,1 級最高,15 級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合...

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

1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 正號運算子 負號運算子 型別 型別轉換運算子 指標運算子 地址與運算子 sizeof 長度運算子 3級優先順序 左結合 乘法運算子 除...