當前位置:首頁 » 編程語言 » c語言運算符優先順序表

c語言運算符優先順序表

發布時間: 2022-06-30 21:16:32

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

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。

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

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

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

八級運算符:<、<=、>、>=關系運算符。

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

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

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

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

十三級運算符:「&&」邏輯與運算符。

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

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

(1)c語言運算符優先順序表擴展閱讀

C語言中各運算符的結合性:

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

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

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

自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。

Ⅱ C語言運算的優先順序別和結合方向表是什麼的

優先順序和結合性
C語言中,運算符的運算優先順序共分為15級。1級最高,15級最低。在表達式中,優先順序較高的先於優先順序較低的進行運算。
而在一個運算量兩側的運算符優先順序相同時,
則按運算符的結合性所規定的結合方向處理。
C語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z則y應先與「-」號結合,
執行x-y運算,然後再執行+z的運算。這種自左至右的結合方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。
最典型的右結合性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z再執行x=(y=z)運算。
C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。
運算符的種類C語言的運算符可分為以下幾類:
1.算術運算符
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
2.關系運算符
用於比較運算。包括大於(>)、小於(<)、等於(==)、
大於等於(>=)、小於等於(<=)和不等於(!=)六種。
3.邏輯運算符
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
4.位操作運算符
參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
5.賦值運算符
用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
6.條件運算符
這是一個三目運算符,用於條件求值(?:)。
7.逗號運算符
用於把若干表達式組合成一個表達式(,)。
8.指針運算符
用於取內容(*)和取地址(&)二種運算。
9.求位元組數運算符
用於計算數據類型所佔的位元組數(sizeof)。
10.特殊運算符
有括弧(),下標[],成員(→,.)等幾種。

Ⅲ c語言運算優先順序

優先順序就是當表達式中有多個運算符時,先計算誰,後計算誰。打個比方,在四則運算中乘除的優先順序就高於加減。

但是C語言中的運算符除了加減乘除還有很多,我們也沒必要將所有運算符的優先順序都記住,這里列出來各個運算符的優先順序表,實在需要用到的時候查一下表就行了。而且實際上在編程的時候需要考慮優先順序的情況很少,因為如果不知道優先順序高低的話,加一個括弧就行了,因為括弧的優先順序是最高的。

比如:

k = (j > i) && (8 == i)
根據優先順序的高低,完全可以寫成:

k = j > i && 8 == i
第一種寫法是比較提倡的,因為一看就知道先計算誰後計算誰,節省了大家的時間還不容易出錯。而且加圓括弧也是一種編程規范,因為程序不只是寫給自己看。

此外運算符還有「目」和「結合性」的概念。「目」就是眼睛的意思,一個運算符需要幾個數參與就歸為「幾目」。C語言中大多數運算符都是雙目的,比如 和 運算符;也有單目和三目的,單目運算符如邏輯非 ( !1 );三目運算符即條件運算符,?:也是C語言中的唯一一個三目運算符。

說完了「目」的概念,再來說一說「結合性」。先來煮個栗子:

1 + 2 × 3 / 4
上式中乘法和除法的優先順序相同,但計算的時候是從左往右,所以乘和除的結合性就是從左往右,so easy!

C語言中大多數運算符的結合性都是從左往右,只有三個運算符是從右往左的。一個是單目運算符,另一個是三目運算符,還有一個就是雙目運算符中的賦值運算符 。運算符的「結合性」也不需要死記硬背,在不斷使用中就記住了。

Ⅳ C語言的運算符的優先順序是什麼

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

( )圓括弧

[ ]下標運算符號

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

.結構體成員運算符

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

C語言提供三種邏輯運算符,按優先順序高低它們分別是:邏輯非(!),邏輯與(&&)、邏輯或(||)。

運算規則:

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

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

! :當運算量的值為「真」時,運算結果為「假」;當運算量的值為「假」時,運算結果為「真」。

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


(5)c語言運算符優先順序表擴展閱讀

C語言中運算符分為四類:算數運算符、關系運算符、邏輯運算符、位運算符。

算數運算符(9):+ - * / % ++ --

關系運算符(6):== != > >= < <=

邏輯運算符(6):&& || ! ^ & |

位運算符(7):& | ~ ^ >> << >>>;

1級是特殊運算符:括弧()

2級是單目運算符:++,-- 從右向左運算,只需要一個運算對象;

3、4級算數運算符:+ - * /

6、7級關系運算符:== != > >= < <=

11、12級邏輯運算符:&& || ! ^ & |

3~12級是雙目運算符:從左向右,需要兩個運算對象

13級是三目運算符:需要三個運算對象

14級是賦值運算符:=

Ⅵ C語言中30多個運算符的優先順序順序

32多個運算符的優先順序順序如下

1、auto

聲明自動變數

2、short

聲明短整型變數或函數

3、int

聲明整型變數或函數

4、long

聲明長整型變數或函數

5、float

聲明浮點型變數或函數

6、double

聲明雙精度變數或函數

7、char

聲明字元型變數或函數

8、struct

聲明結構體變數或函數

9、union

聲明共用數據類型

10、enum

聲明枚舉類型

11、typedef

用以給數據類型取別名

12、const

聲明只讀變數

13、unsigned

聲明無符號類型變數或函數

14、signed

聲明有符號類型變數或函數

15、extern

聲明變數是在其他文件正聲明

16、register

聲明寄存器變數

17、static

聲明靜態變數

18、volatile

說明變數在程序執行中可被隱含地改變

19、void

聲明函數無返回值或無參數,聲明無類型指針

20、if

條件語句

21、else

條件語句否定分支(與 if 連用)

22、switch

用於開關語句

23、case

開關語句分支

24、for

一種循環語句

25、do

循環語句的循環體

26、while

循環語句的循環條件

27、goto

無條件跳轉語句

28、continue

結束當前循環,開始下一輪循環

29、break

跳出當前循環

30、default

開關語句中的「其他」分支

31、sizeof

計算數據類型長度

32、return

子程序返回語句(可以帶參數,也可不帶參數)循環條件

(6)c語言運算符優先順序表擴展閱讀

1、==和!=優先順序相等,其他四個關系運算符的優先順序相等,且前者的優先順序低於後者。

如2==3>1 應該先計算3>1。

2、關系運算符中,若優先順序相同,則「從左往右」結合。

如4>3<2,先計算4>3

3、關系運算符中的優先順序小於算術運算符。

如3+4>8-2 相當於(3+4)> (8-2)

Ⅶ C語言中運算符優先順序別的問題

C++中 a++ a--符號的順序是自右向左.即-a++=-(a++)
但是出現付值時.b=a++ b的值與等號右邊的a的原值相等.
其次無論什麼順序都是自右向左(注意(a++)+(a++)+(a++)
這時的如果a的值是6,那麼值是18.a在加之前連續自增三次)
運算符."=="與"="相比"=="大於"=".
">"與"="相比">"大於"=".
">"運算符的運算是自左向右.
這都是我學習C++的時候將方法寫下的.希望能幫到你!

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

c語言運算符優先順序從高到低的順序依次如下:

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

不同類型的運算符之間也有相應的優先順序順序。

一個表達式中既可以包括相同類型的運算符,也可以包括不同類型的運算符或者函數。當多種運算符出現在同一個表達式中時,應該先按照不同類型運算符間的優先順序進行運算。

各種運算符間的優先順序如下:數值運算符、字元串運算符、關系運算符、邏輯運算符。可以用括弧改變優先順序順序,使得括弧內的運算優先於括弧外的運算。對於多重括弧,總是由內到外強製表達式的某些部分優先運行。括弧內的運算總是最優先計算。

Ⅸ C語言運算符優先順序順序

C語言運算符優先順序順序如下所示:

(9)c語言運算符優先順序表擴展閱讀

一個表達式可以包含多個運算符。在這種情況下,運算符的優先順序決定表達式的哪部分被處理為每個運算符的操作數。例如,按照運算規則,表達式中*、/、以及 % 的優先順序比 + 和 - 高。如下列表達式:

a - b * c

相當於 a-(b*c)。如果想讓操作數以不同的方式組合在一起,則必須使用括弧:

(a - b) * c

如果一個表達式中的兩個操作數具有相同的優先順序,那麼它們的結合律(associativity)決定它們的組合方式是從左到右或是從右到左。例如,算術運算符和操作數的組合方式是從左到右,賦值運算符則是從右到左。

Ⅹ 運算符優先順序(C語言中)

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就不再判斷。
望採納

熱點內容
linux終端字元 發布:2025-02-04 12:52:40 瀏覽:734
c語言程序設計mobi 發布:2025-02-04 12:51:55 瀏覽:256
rsa演算法c語言 發布:2025-02-04 12:50:36 瀏覽:782
阿里雲伺服器託管破解 發布:2025-02-04 12:47:43 瀏覽:255
汽車都有什麼配置 發布:2025-02-04 12:42:51 瀏覽:455
ons解壓密碼 發布:2025-02-04 12:42:43 瀏覽:777
san存儲監控 發布:2025-02-04 12:42:06 瀏覽:41
apachemodpython 發布:2025-02-04 12:33:53 瀏覽:671
linuxphp安裝mysql 發布:2025-02-04 12:32:55 瀏覽:148
小米手機怎麼擴大配置 發布:2025-02-04 12:27:34 瀏覽:980