程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C言語運算符優先級

C言語運算符優先級

編輯:關於C++

C言語運算符優先級。本站提示廣大學習愛好者:(C言語運算符優先級)文章只能為提供參考,不一定能成為您想要的結果。以下是C言語運算符優先級正文


 

優先級

運算符

稱號或含義

運用方式

結合方向

闡明

1

[]

數組下標

數組名[常量表達式]

左到右

--

()

圓括號

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

--

.

成員選擇(對象)

對象.成員名

--

->

成員選擇(指針)

對象指針->成員名

--

 

2

-

負號運算符

-表達式

右到左

單目運算符

~

按位取反運算符

~表達式

++

自增運算符

++變量名/變量名++

--

自減運算符

--變量名/變量名--

*

取值運算符

*指針變量

&

取地址運算符

&變量名

!

邏輯非運算符

!表達式

(類型)

強迫類型轉換

(數據類型)表達式

--

sizeof

長度運算符

sizeof(表達式)

--

 

3

/

表達式/表達式

左到右

雙目運算符

*

表達式*表達式

%

余數(取模)

整型表達式%整型表達式

4

+

表達式+表達式

左到右

雙目運算符

-

表達式-表達式

5

<< 

左移

變量<<表達式

左到右

雙目運算符

>> 

右移

變量>>表達式

 

6

大於

表達式>表達式

左到右

雙目運算符

>=

大於等於

表達式>=表達式

小於

表達式<表達式

<=

小於等於

表達式<=表達式

7

==

等於

表達式==表達式

左到右

雙目運算符

!=

不等於

表達式!= 表達式

 

8

&

按位與

表達式&表達式

左到右

雙目運算符

9

^

按位異或

表達式^表達式

左到右

雙目運算符

10

|

按位或

表達式|表達式

左到右

雙目運算符

11

&&

邏輯與

表達式&&表達式

左到右

雙目運算符

12

||

邏輯或

表達式||表達式

左到右

雙目運算符

 

13

?:

條件運算符

表達式1?

表達式2: 表達式3

右到左

三目運算符

 

14

=

賦值運算符

變量=表達式

右到左

--

/=

除後賦值

變量/=表達式

--

*=

乘後賦值

變量*=表達式

--

%=

取模後賦值

變量%=表達式

--

+=

加後賦值

變量+=表達式

--

-=

減後賦值

變量-=表達式

--

<<=

左移後賦值

變量<<=表達式

--

>>=

右移後賦值

變量>>=表達式

--

&=

按位與後賦值

變量&=表達式

--

^=

按位異或後賦值

變量^=表達式

--

|=

按位或後賦值

變量|=表達式

--

 

15

逗號運算符

表達式,表達式,…

左到右

--

闡明:
同一優先級的運算符,運算次第由結合方向所決議。
復雜記就是:! > 算術運算符 > 關系運算符 > && > || > 賦值運算符

 

char s[] = "012345678";

char *p = s;

 

1.++*p:P指向S[0],並把S[0]加1做為表達式的值,所以輸入為1,此時S[0]=='1'
2.++(*p):P還指向S[0](S[0]如今的值為1),並把S[0]加1做為表達式的值,所以輸入為2,此時S[0]=='2'
3.*(++p):p指向S[1],然後取S[1]的值作為表達式的值,輸入'1'
4.*++p :P指向S[2],然後取S[2]的值作為表達式的值,輸入'2'
5.(*p)++:P還是指向S[2],取S[2]的值作為表達式的值,所以輸入'2',然後S[2]的值加1,S[2]==3
6.*(p++):P還是指向S[2](現值為3),取S[2]的值作為表達式的值,所以輸入'3',然後P指向S[3]
7.*p++ :P指向S[3],取S[3]的值作為表達式的值,所以輸入'3',然後P指向S[4];

 

*p++是先取出*p的值,然後讓p++
(*p)++是先取出*p的值,讓這個值++
*(P++)是先取出*p的值,讓p++
所以,*p++等價於*(P++)
而且printf的運轉順序是從右向左運轉。而且右++是在整個運算表達式運算完才停止,而且右++的執行順序是從左到右停止。

而左++遇到變量就會立刻添加變量的值

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved