逗號運算子
C語言中逗號“,”也是一種運算子,稱為逗號運算子。 其功能是把兩個運算式串連起來組成一個運算式, 稱為逗號運算式。
其一般形式為: 運算式1,運算式2 其求值過程是分別求兩個運算式的值,並以運算式2的值作為整個逗號運算式的值。
void main(){
int a=2,b=4,c=6,x,y;
x=a+b,y=b+c;
printf("y=%d,x=%d",y,x);
}
a<--2,b<--4,c<--6,x<--0,y<--0
x<--a+b,y<---b+c
本例中,y等於整個逗號運算式的值,也就是運算式2的值,x是第一個運算式的值。對於逗號運算式還要說明兩點:
1.逗號運算式一般形式中的運算式1和運算式2 也可以又是逗號運算式。例如: 運算式1,(運算式2,運算式3) 形成了嵌套情形。因此可以把逗號運算式擴充為以下形式: 運算式1,運算式2,…運算式n 整個逗號運算式的值等於運算式n的值。
2.程式中使用逗號運算式,通常是要分別求逗號運算式內各運算式的值,並不一定要求整個逗號運算式的值。
3.並不是在所有出現逗號的地方都組成逗號運算式,如在變數說明中,函數參數表中逗號只是用作各變數之間的間隔符。
[Practice] //arithmeticint a,b,c;
float d;
a=11;
b=235;
c=a+b-a*b;
d=(float)c/(float)a;
a=c/a;'Vtable
a,2,0
b,2,0
c,2,0
d,4,0.0
of Vtable
'Vupdate
1,0;2,0;3,0
4,0.0
1,11
2,235
3,-2339
4,-212.636368
1,-212
of Vupdate
of Practice
[Practice] //1int a,b,c1,c2;
a=25;
b=3243;
c1=b/a;
c2=b%a;'Vtable
a,2,0
b,2,0
c1,2,0
c2,2,0
of Vtable
'Vupdate
1,0;2,0;3,0;4,0
1,25
2,3243
3,129
4,18
of Vupdate
of Practice
[Practice] //1int a,b,c;
a=25;
b=40;
c=a+b,c+35;'Vtable
a,2,0
b,2,0
c,2,0
of Vtable
'Vupdate
1,0;2,0;3,0
1,25
2,40
3,65
of Vupdate
of Practice
小結
1.C的資料類型
基本類型,構造類型,指標類型,空類型
2.基本類型的分類及特點
類型說明符 位元組 數值範圍
字元型char 1 C字元集
基本整型int 2 -32768~32767
短整型short int 2 -32768~32767
長整型 long int 4 -214783648~214783647
無符號型 unsigned 2 0~65535
無符號長整型 unsigned long 4 0~4294967295
單精確度實型 float 4 3/4E-38~3/4E+38
雙精確度實型 double 8 1/7E-308~1/7E+308
3.常量尾碼
L或l 長整型
U或u 無符號數
F或f 浮點數
4.常量類型
整數,長整數,無符號數,浮點數,字元,字串,符號常數,逸出字元。
5.資料類型轉換
·自動轉換
在不同類型資料的混合運算中,由系統自動實現轉換, 由少位元組類型向多位元組類型轉換。 不同類型的量相互賦值時也由系統自動進行轉換,把賦值號右邊的類型轉換為左邊的類型。
·強制轉換
由強制轉換運算子完成轉換。
6.運算子優先順序和結合性
一般而言,單目運算子優先順序較高,賦值運算子優先順序低。 算術運算子優先順序較高,關係和邏輯運算子優先順序較低。 多數運算子具有左結合性,單目運算子、三目運算子、 賦值
7.運算式
運算式是由運算子串連常量、變數、函數所組成的式子。 每個運算式都有一個值和類型。 運算式求值按運算子的優先順序和結合性所規定的順序進行。