国产韩日影视精品_中文字幕一区二区三区在线不卡_久久亚洲综合色一区二区三区 _国产成人久久久

【六六互聯】長期出售【美國抗投訴服務器】【歐洲抗投訴服務器】【亞洲抗投訴服務器】

C語言的運算符非常豐富,能夠組成不同的類型的表達式

C語言的運算符非常豐富,能夠組成不同的類型的表達式

比如:

1+2*3-10

其中,12310稱為操作數,+ *-稱為運算符

上面的表達式先進行*運算,再進行+運算和-運算,這是因為運算符的優先級不同,*的優先級高于+-,所以先進行*運算。

進行-運算時,是710,而不是107,這是由運算符的結合性決定的,-運算符的結合性是從左到右。

運算符不僅具有不同的優先級,還有不同的結合性。在表達式中,各運算量參與運算的先后順序不僅要遵守運算符優先級別的規定,還要受運算符結合性的制約,以便確定是自左向右進行運算還是自右向左進行運算。

C語言的運算符可分為以下幾類,見表2-9所示:

              2-9 運算符的類型說明

 

運算符

 

 

算術運算符

 

用于各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種

 

關系運算符

 

用于比較運算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六種

 

邏輯運算符

 

用于邏輯運算。包括與(&&)、或(||)、非(!)三種 

 

位操作運算符

 

參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種

 

賦值運算符

 

用于賦值運算,分為簡單賦值(=)、復合算術賦值(+=, -=, *=, /=, %=)和復合位運算賦值(&=, |=, ^=, >>=, <<=)三類共十一種

 

條件運算符

 

這是一個三目運算符,用于條件求值(?:)

 

逗號運算符

 

用于把若干表達式組合成一個表達式()

 

指針運算符

 

用于取內容(*)和取地址(&)二種運算

 

求字節數運算符

 

用于計算數據類型所占的字節數(sizeof)

 

特殊運算符

 

有括號(),下標[],成員(->.)等幾種

表達式是由常量、變量、函數和運算符組合起來的式子。一個表達式有一個值及其類型,它們分別是計算表達式所得結果的值和類型。表達式求值按運算符的優先級和結合性規定的順序進行,單個的常量、變量、函數可以看作是表達式的特例。C語言中各運算符的優先級和結合性見附錄C

1.一般算術運算符

C語言基本算數運算符如表2-10所示:

2-10 基本運算符                  

 

名稱

 

符號 

 

說明

 

加法運算符

 

+

 

雙目運算符,即應有兩個量參與加法運算,具有左結合性。

 

減法運算符

 

-

 

雙目運算符。作負值運算符時為單目運算符,具右結合性。

 

乘法運算符

 

* 

 

雙目運算符,具有左結合性。

 

除法運算符

 

/

 

雙目運算符,具有左結合性。參與運算量均為整型時,結果也為整型,舍去小數。如果運算量中有一個是實型,則結果為雙精度實型

 

求余運算符(模運算符)

 

%

 

雙目運算符,具有左結合性。要求參與運算的量均為整型,不能應用于floatdouble類型。求余運算的結果等于兩數相除后的余數,整除時結果為0

雙目運算符+-具有相同的優先級,它們的優先級比運算符*/%的優先級低,而運算符*/和%的優先級又比單目運算符-(負號)的優先級低。

2-13】除法運算符

#include<stdio.h>

int main()

{

printf("\n\n%d,%d\n",20/7,-20/7);

printf("%f,%f\n",20.0/7,-20.0/7);

return 0;

}

程序運行結果:

 

 

2-2

2.857143,-2.857143

本例中,20/7-20/7的結果均為整型,小數全部舍去。而20.0/7-20.0/7由于有實數參與運算,因此結果也為實型。

2-14】取余運算符

#include<stdio.h>

int main()

{

printf("%d\n",100%3);

return 0;

}

程序運行結果:

1

本例輸出100除以3所得的余數1

2.自增、自減運算符

自增運算符(++)和自減運算符在C語言中使用比較頻繁,這兩個運算符有一個共同的特點,就是它們既可以出現變量的左邊,構成前置++/--,又可以出現在變量的右邊,構成后置++/--

前置++/--的語法規則:現將變量的值加1/1,再使用該變量。

后置++/--的語法規則:先使用該變量,再將變量的值加1/1

2-15】使用自增、自減運算符

#include<stdio.h>

int main()

{

int i=8;

printf("%d\n",++i);

printf("%d\n",--i);

printf("%d\n",i++);

printf("%d\n",i--);

printf("%d\n",-i++);

printf("%d\n",-i--);

return 0;

}

程序運行結果:

9

8

8

9

-8

-9

i的初值為8,第4i1后輸出故為9;第5行減1后輸出故為8;第6行輸出i8之后再加1(9);第7行輸出i9之后再減1(8) ;第8行輸出-8之后再加1(9),第9行輸出-9之后再減1(8)

3.逗號運算符

C語言中逗號“,”也是一種運算符,稱為逗號運算符,其功能是把兩個表達式連接起來組成一個表達式,稱為逗號表達式。其一般形式為:

表達式1,表達式2;

其求值過程是分別求兩個表達式的值,并以表達式2的值作為整個逗號表達式的值。

2-16】逗號運算符舉例

#include <stdio.h>

int main()

{

int a=2,b=4,c=6,x,y;

y=(x=a+b,b+c);

printf("y=%d,x=%d\n",y,x);

return 0;

}

程序運行結果:

y=10,x=6

本例中,y等于整個逗號表達式的值,也就是表達式2的值,x是第一個表達式的值。

對于逗號表達式還要說明三點:

(1)逗號表達式一般形式中的表達式1和表達式2也可以又是逗號表達式。

例如:

表達式1, ( 表達式2, 表達式3 )

形成了嵌套情形,因此可以把逗號表達式擴展為以下形式:

表達式1, 表達式2, …表達式n

整個逗號表達式的值等于表達式n的值。

(2)程序中使用逗號表達式,通常是要分別求逗號表達式內各表達式的值,并不一定要求整個逗號表達式的值。

(3)并不是在所有出現逗號的地方都組成逗號表達式,如在變量說明中,函數參數表中逗號只是用作各變量之間的間隔符。