c語言表示式的運算順序

2021-08-03 22:14:46 字數 3390 閱讀 7999

c語言中表示式的運算順序由優先順序和結合性決定。

1.先按運算子優先順序運算。2.如果相鄰若干個運算子優先順序相同,則按結合方向來運算。

比如:1+2-3*4的運算為:有優先順序先做*運算,3*4得到12;表示式為1+2-12,算數運算子為從左到右的結合方向,即先做+運算,再做-運算。

下面是c語言運算子的優先順序和結合性:

優先順序

運算子

名稱或含義

使用形式

結合方向

說明

1

陣列下標

陣列名[常量表示式]

左到右--

()

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

--.

成員選擇(物件)

物件.成員名

--->

成員選擇(指標)

物件指標->成員名

--2

-

負號運算子

-表示式

右到左

單目運算子

~

按位取反運算子

~表示式

++

自增運算子

++變數名/變數名++

--

自減運算子

--變數名/變數名--

*

取值運算子

*指標變數

&

取位址運算子

&變數名

!

邏輯非運算子

!表示式

(

型別)

強制型別轉換

(資料型別)表示式

--sizeof

長度運算子

sizeof(表示式)

--3

/

除表示式/表示式

左到右雙目運算子

*

乘表示式*表示式

%

餘數(取模)

整型表示式%整型表示式

4

+

加表示式+表示式

左到右雙目運算子

-

減表示式-表示式

5

<<

左移變數《表示式

左到右雙目運算子

>>

右移變數》表示式

6

>

大於表示式》表示式

左到右雙目運算子

>=

大於等於

表示式》=表示式

<

小於表示式《表示式

<=

小於等於

表示式<=表示式

7

==

等於表示式==表示式

左到右雙目運算子

=

不等於表示式!= 表示式

8

&

按位與表示式&表示式

左到右雙目運算子

9

^

按位異或

表示式^表示式

左到右雙目運算子

10

|

按位或表示式|表示式

左到右雙目運算子

11

&&

邏輯與表示式&&表示式

左到右雙目運算子

12

||

邏輯或表示式||表示式

左到右雙目運算子

13

?:

條件運算子

表示式1?

表示式2: 表示式3

右到左

三目運算子

14

=

賦值運算子

變數=表示式

右到左

--/=

除后賦值

變數/=表示式

--*=

乘後賦值

變數*=表示式

--%=

取模後賦值

變數%=表示式

--+=

加後賦值

變數+=表示式

---=

減後賦值

變數-=表示式

--<<=

左移後賦值

變數<<=表示式

-->>=

右移後賦值

變數》=表示式

--&=

按位與後賦值

變數&=表示式

--^=

按位異或後賦值

變數^=表示式

--|=

按位或後賦值

變數|=表示式

--15

逗號運算子

表示式,表示式,…

左到右--

C語言表示式

逗號表示式逗號表示式 就是用逗號隔開的多個表示式,從左向右依次執行 exp1,exp2,wxp3,wxpn注意 整個表示式的結果是最後乙個表示式的結果。void test 下表引用 函式呼叫和結構成員 1.下表引用符操作符 運算元 乙個陣列名 以後索引值 int arr 10 arr 9 10 有兩...

Go語言 表示式

go語言僅有25個保留的關鍵字,下面我們就列舉下這25個關鍵字 break default func inte ce select case defer gomap struct chan else goto package switch const fallthrough ifrange type...

c語言 表示式的計算

include stack.h 提供棧及其基本操作函式 include mymath.h 提供階乘函式 include include define buffsize 128 define charsize 10 define pi 3.141593 define e 2.718282 define...