|
  
- UID
- 133
- 帖子
- 51
- 精华
- 1
- 积分
- 186
- 金币
- 55
- 威望
- 2
- 贡献
- 0

|
8楼
发表于 2008-1-21 16:58
| 只看该作者
C语言之数据类型-运算符-表达式(完)
逗号运算符
3 q8 p4 R, U5 u+ g8 a' eC语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。
* Y5 `' e( r) G5 }0 Q- Q3 S其一般形式为: 表达式1,表达式2 其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。 t: z9 }& J6 @
void main(){
6 } p. A# Q0 W. M& C( O6 F- R# Uint a=2,b=4,c=6,x,y;
) S5 f3 b% j. {' E1 t$ V& B6 U6 N; M) cx=a+b,y=b+c;- n" r) A9 b% y1 k3 L
printf("y=%d,x=%d",y,x);
- x8 r- I* A! m! c! b% ]+ O}
/ U* T1 K) `' q6 ua<--2,b<--4,c<--6,x<--0,y<--08 |% e* Z+ q8 P+ ~2 U0 K3 Z
x<--a+b,y<---b+c 0 D+ o4 @, j+ ~6 k y. @" O. G
本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式还要说明两点:. o3 m" \/ }3 d1 I- p9 n
1.逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。例如: 表达式1,(表达式2,表达式3) 形成了嵌套情形。因此可以把逗号表达式扩展为以下形式: 表达式1,表达式2,…表达式n 整个逗号表达式的值等于表达式n的值。
! \8 z8 j2 l9 y' z1 g2.程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。
+ t8 E$ _1 }- T3.并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。: F) W, a- y: ?& }2 K/ o( j" R
[Practice] //arithmeticint a,b,c;
0 @4 j, B/ c& s7 T T( G& ~float d;! G0 \/ M/ k9 z- c: F5 M" o
a=11; S, y( u& U0 b5 X
b=235;* E F& ~9 O" H: F& _/ y3 N2 m
c=a+b-a*b;7 Y7 t" W0 s& h8 S- b
d=(float)c/(float)a;1 ]! A4 n J4 T/ k3 e- p* s
a=c/a;'Vtable7 B2 I) U" g7 R- _2 e8 Y) O
a,2,0
, d3 N d) B; s; z, [$ cb,2,0* F$ u& M% M! ~4 O. ?% t
c,2,00 H' g3 R& \, g$ y
d,4,0.0
: |, |" j2 \) Y0 mof Vtable0 i, S: @1 p* F& i, a( Y
'Vupdate) d: F& ]: y' R0 c O+ S6 Q' l
1,0;2,0;3,0
+ f; b% c6 w% c8 e4,0.0
& o" O# N+ o/ Q) F2 t1,11
) |3 K8 k1 V: y( B# W2 g5 e2,2357 h5 T5 r! k7 ^- Y6 u% }3 p4 Y, t' ?
3,-2339
9 T% }9 {7 H8 { c+ w* U' { y4,-212.636368
5 g9 P3 e0 D+ E$ l. n/ }1,-212
) h: P; W: a" k, yof Vupdate
$ Z- F" c/ O4 b& Uof Practice
6 D5 w$ ^5 _" f3 n[Practice] //1int a,b,c1,c2;4 d+ o6 t" i& \$ W( W0 I% T4 T9 C
a=25;& f6 E9 f2 s) e( }
b=3243;
$ C# D& e4 X6 A/ t f$ K0 oc1=b/a;
0 ~$ {: f$ g0 g/ D$ m* C8 U. ~/ q( }! [c2=b%a;'Vtable! J1 h9 V1 f. M2 f2 x) k
a,2,0' R }7 j- Y3 s1 P- G, K" R
b,2,0* `3 T/ Y6 [' U* W. Q8 g9 R- V
c1,2,0
% Y) q/ Q0 _* G% d$ Lc2,2,06 i# k' f2 r; V: t C) l
of Vtable. h/ k" ~5 f2 X* A7 h
'Vupdate
# x6 `5 g2 `' t1,0;2,0;3,0;4,0: I. j# \9 x7 j( b4 p
1,25
0 z- }* t! g* Q) f, F' V9 L2,3243
3 k9 I8 T3 @: {. Z3,129( A0 v8 B, T$ T& c3 S4 }5 p
4,181 l' H1 R/ F3 q0 P1 h0 o
of Vupdate0 l- ~! O8 Y) U1 t Y0 p
of Practice) K# R( Z3 C% [; u# t
[Practice] //1int a,b,c;6 d/ M ^+ u6 _1 `9 I0 k
a=25;& M6 {% I4 v5 A: D- k; H/ P9 i5 _) _
b=40;) A, v3 E% L' P _3 X$ g O$ ~
c=a+b,c+35;'Vtable4 L9 C8 U7 o5 C7 Q4 h1 i
a,2,0
7 `5 }- d5 Y( a# Vb,2,0
2 I+ v3 H: p0 n/ k5 _, O+ ?' Ec,2,0
4 y2 s# L! }4 C& ^$ z" z- ~" fof Vtable
! w, s. \3 _/ K: a j* d'Vupdate% G- S3 ~1 n' u5 E2 h# [
1,0;2,0;3,0
6 k8 h1 D! \2 F+ P- K, u1,25
: v0 F& b; {1 r T7 n% M5 e- S2,40
, S1 ]( X6 N- Q, n3,65
) i' [$ K; q- ^% k' Kof Vupdate% S, f$ K& B( f8 h, e* l0 ?+ ]
of Practice
) a' k& S! V$ U7 ~! G% ~( G7 W7 \4 R0 |. n2 j. \# _. a
小结
5 _- R, l- D; S/ q1 R+ q6 `, b* P5 F" f: W
1.C的数据类型9 D( F. F, G# o$ O4 n4 c
基本类型,构造类型,指针类型,空类型
. P* f3 o2 Y+ t2.基本类型的分类及特点! {' _# d, Z4 D" n
类型说明符 字节 数值范围( F5 l+ E1 D$ w1 r/ [) k2 ~# b. E3 C: s
字符型char 1 C字符集6 ~0 M \$ _1 d0 x1 x, ]
基本整型int 2 -32768~32767
( Y& q, y+ v5 z4 I0 g2 ~短整型short int 2 -32768~32767& W8 E+ U% ^! A2 s
长整型 long int 4 -214783648~214783647
$ b0 Y& x! L, h无符号型 unsigned 2 0~65535& f! y/ D, @7 j
无符号长整型 unsigned long 4 0~4294967295+ k3 n/ I3 d* N: [7 f, l
单精度实型 float 4 3/4E-38~3/4E+38
) f3 E3 ?) L( {( V双精度实型 double 8 1/7E-308~1/7E+308! g9 H8 e. y; p" p- Q
3.常量后缀$ U- p8 h" x/ H) H' F5 E$ `
L或l 长整型0 w! [) ^9 g, z7 Z: G
U或u 无符号数
& s$ U; _+ `6 k) b9 r' N' F9 ~F或f 浮点数9 e1 D1 l$ L( u- |9 C2 y
4.常量类型6 z8 W3 ` l% o# [
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。 : C9 y, e6 p: D
5.数据类型转换
' S y5 F% R. k5 t8 ?$ c·自动转换
3 y7 U0 k/ F+ v6 _- K6 z在不同类型数据的混合运算中,由系统自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。1 I2 u# K" e9 W% K% s( D
·强制转换
1 [: B8 i! k6 ~# X* d7 J- v( K由强制转换运算符完成转换。1 ]% g- B! u7 c2 ]8 Q
6.运算符优先级和结合性0 b1 Y C) b, G3 Z4 {
一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、 赋值! I* L& D8 I. d. j! b5 ?
7.表达式+ C. D4 U: S7 J( u+ \
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。 |
|