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

運算優先順序c語言

發布時間: 2024-02-08 06:01:12

c語言中,以下運算符優先順序最高的是_____

!(非)的優先順序最高。

運算符基本的優先順序:

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

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


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

C語言中,運算符除了常見的三大類,算術運算符、關系運算符與邏輯運算符之外,還有一些用於完成特殊任務的運算符。

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

㈡ C語言裡面的運算符優先順序如何

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

各等級運算符如下:

(以下說明中,對傳統的1級和2級做了細化,1和2對應傳統1級,3和4對應傳統2級,所以細化說明共有17級。)

1、基本表達式 1級

基本表達式(Primary expressions),主要是用於運算符之間,做為運算數。

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

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


2、後綴表達式 2級

postfix-expression [ expression ],數組下標運算。

postfix-expression ( argument-expression-list),函數調用,括弧內的參數可選。

postfix-expression . identifier,成員訪問

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

postfix-expression ++,後綴自增

postfix-expression --,後綴自減

( type-name ) { initializer-list }

( type-name ) { initializer-list , } 復合初始化,C99後新增。

3、單目/一元運算 3級

++ unary-expression 前綴自增

-- unary-expression 前綴自減

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

sizeof unary-expression 求類型長度,對表達式求類型長度

sizeof ( type-name ) 求類型長度


4、強制類型表達式 4級

( type-name ) cast-expression,強製表達式成為type-name指定的類型。


5、乘法表達式 5級

「 * 」 乘法運算符;「 / 」除法運算符;「 % 」 取余運算符。


6、加法運算符 6級

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


7、移位運算符 7級

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


8、關系運算符 8級

<、<=、>、>=關系運算符。


9、相等運算符 9級

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


10、位與運算符 10級

「 & 」按位與運算符


11、位異或運算符 11級

「 ∧ 」按位異或運算符(Bitwise exclusive OR operator)。


12、位或運算符 12 級

「 | 」按位或運算符(Bitwise inclusive OR operator)。


13、邏輯與運算符 13級

「&&」邏輯與運算符。


14、邏輯或運算符 14 級

「 || 」邏輯或運算符。


15、三元條件運算符 15級

? :條件運算符。


16、賦值運算符 16 級

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


17、逗號運算符 17級

「,」逗號運算符。

具體可參見下圖:

㈢ 運算符優先順序(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就不再判斷。
望採納

㈣ c語言優先順序是什麼

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

第1優先順序:各種括弧,如()、[]等、成員運算符。

第2優先順序:所有單目運算符,如++、–、!、~等。

第3優先順序:乘法運算符*、除法運算符/、求余運算指穗符%。

第4優先順序:加法運算符+、減法運算符-。

第5優先順序:移位運算符<<、>>。

第6優先順序:大於運算符>、大於等於運算符>=、小於運算符<、小於等於運算符<=。

第7優先順序:等於運算符==、不等於運算符!=。

第8優先順序:按位與運算符&。

第9優先順序:按位異或運算符^。

第10優先順序:按位或運算符|叢寬。

第11優先順序:邏輯與運算符&&。

第12優先順序:邏輯或運算符||。

第13優先順序:三目條件運算符?。

第14優先順序:各種賦值運算符,如=、+=、-唯鄭卜=、*=、/=等。

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

熱點內容
傳奇伺服器源碼 發布:2024-11-29 11:43:15 瀏覽:819
新手機如何登錄微信密碼忘記了 發布:2024-11-29 11:34:34 瀏覽:543
筆記本配置低怎麼玩lol 發布:2024-11-29 11:34:32 瀏覽:460
如何在iphone上玩安卓號 發布:2024-11-29 11:24:21 瀏覽:753
伺服器店鋪怎麼取名 發布:2024-11-29 11:19:26 瀏覽:3
phpapache日誌 發布:2024-11-29 11:07:26 瀏覽:309
國圖資料庫 發布:2024-11-29 10:34:15 瀏覽:541
vpn免流伺服器搭建 發布:2024-11-29 10:26:12 瀏覽:245
c源文件編譯後的擴展名為 發布:2024-11-29 10:08:40 瀏覽:924
腳本自動登錄 發布:2024-11-29 09:55:27 瀏覽:63