日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 —— 运算符的优先级

發布時間:2025/10/17 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言 —— 运算符的优先级 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C 語言的符號眾多,由這些符號又組合成了各種各樣的運算符。既然是運算符就一定有
其特定的優先級,下表就是 C 語言運算符的優先級表:

?

優先級

運算符

名稱或含義

使用形式

結合方向

說明

1

[]

數組下標

數組名[常量表達式]

左到右

?

?

()

圓括號

(表達式) 參表) /函數名(形

?

.

成員選擇(對象)

對象.成員名

?

->

成員選擇(指針)

對象指針->成員名

?

2

-

負號運算符

-表達式

右到左

單目運算符

(類型)

強制類型轉換

(數據類型)表達式

?

++

自增運算符

++變量名/變量名++

單目運算符

--

自減運算符

--變量名/變量名--

單目運算符

*

取值運算符

*指針變量

單目運算符

&

取地址運算符

&變量名

單目運算符

!

邏輯非運算符

!表達式

單目運算符

~

按位取反運算符

~表達式

單目運算符

sizeof

長度運算符

sizeof(表達式)

?

3

/

表達式/表達式

左到右

雙目運算符

*

表達式*表達式

雙目運算符

%

余數(取模)

整型表達式/整型表

達式

雙目運算符

4

+

表達式+表達式

左到右

雙目運算符

-

表達式-表達式

雙目運算符

5

<<

左移

變量<<表達式

左到右

雙目運算符

>>

右移

變量>>表達式

雙目運算符

6

>

大于

表達式>表達式

左到右

雙目運算符

>=

大于等于

表達式>=表達式

雙目運算符

<

小于

表達式<表達式

雙目運算符

<=

小于等于

表達式<=表達式

雙目運算符

7

==

等于

表達式==表達式

左到右

雙目運算符

!=

不等于

表達式!= 表達式

雙目運算符

8

&

按位與

表達式&表達式

?

雙目運算符

9

^

按位異或

表達式^表達式

?

雙目運算符

10

|

按位或

表達式|表達式

?

雙目運算符

11

&&

邏輯與

表達式&&表達式

?

雙目運算符

12

||

邏輯或

表達式||表達式

?

雙目運算符

13

?:

條件運算符

表達式 1? 表達式 2:

表達式 3

?

三目運算符

14

=

賦值運算符

變量=表達式

右到左

?

/=

除后賦值

變量/=表達式

?

*=

乘后賦值

變量*=表達式

?

%=

取模后賦值

變量%=表達式

?

+=

加后賦值

變量+=表達式

?

-=

減后賦值

變量-=表達式

?

<<=

左移后賦值

變量<<=表達式

?

>>=

右移后賦值

變量>>=表達式

?

&=

按位與后賦值

變量&=表達式

?

^=

按位異或后賦值

變量^=表達式

?

|=

按位或后賦值

變量|=表達式

?

15

,

逗號運算符

表達式,表達式,…

左到右

從左到右順序運算

?

注:同一優先級的運算符,運算次序由結合方向所決定。
上表不容易記住。其實也用不著死記,用得多,看得多自然就記得了。也有人說不用記
這些東西,只要記住乘除法的優先級比加減法高就行了,別的地方一律加上括號。這在你自
己寫代碼的時候,確實可以,但如果是你去閱讀和理解別人的代碼呢?別人不一定都加上括
號了吧?所以,記住這個表,我個人認為還是很有必要的。
?

上表中,優先級同為 1 的幾種運算符如果同時出現,那怎么確定表達式的優先級呢?這
是很多初學者迷糊的地方。下表就整理了這些容易出錯的情況:
這些容易出錯的情況,希望讀者好好在編譯器上調試調試,這樣印象會深一些。一定要
多調試,光靠看代碼,水平是很難提上來的。調試代碼才是最長水平的。

優先級問題表達式經常誤認為的結果實際結果
.的優先級高于*
->操作符用于消除這
個問題
*p.fp 所指對象的字段 f
(*p).f
對 p 取 f 偏移,作為
指針,然后進行解除
引用操作。*(p.f)
[]高于*int *ap[]ap 是個指向 int 數組
的指針
int (*ap)[]
ap 是個元素為 int
指針的數組
int *(ap[])
函數()高于*int *fp()fp 是個函數指針,所
指函數返回 int。
int (*fp)()
fp 是個函數,返回
int *
int *(fp())
== 和!=高于位操作(val & mask != 0)(val & mask)!= 0val & (mask != 0)
== 和!=高于賦值符c = getchar() !=
EOF
(c = getchar()) !=
EOF
c = (getchar() !=
EOF)
算術運算符高于位移
運算符
msb << 4 + lsb(msb << 4) + lsbmsb << (4 + lsb)
逗號運算符在所有運
算符中優先級最低
i = 1,2i = (1,2)(i = 1),2


?


?

?

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的C语言 —— 运算符的优先级的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。