int -32768~327678 I/ f a3 l+ {( Z$ ~
short int -32768~32767( ~/ ~+ @6 r4 z& U! z
signed int-32768~32767
c3 u0 b% P2 [% k9 M3 F* n unsigned int 0~65535+ a4 w' |4 Y7 g/ k3 W; J; j9 R
long int -2147483648~2147483647
8 w) f+ h& j4 ^ unsigned long 0~4294967295* N; E+ P2 ^$ {% `) V( R5 X
整型变量的说明
% x; U1 J; y' n" Y) U5 D! F 变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如:3 e# _" ~# p D& Q
int a,b,c;
. H* x- T1 x0 I; q9 { a5 m long x,y;
6 `- {4 R* s4 e: _ unsigned p,q;
- N @' P6 _6 B% s' s 在书写变量说明时,应注意以下几点:, _$ U! j }) {/ X
1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。9 s, T& y0 n1 N% n/ [$ w5 q
2.最后一个变量名之后必须以“;”号结尾。3 ?' s. E. m# X; r* v7 Z
3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。6 o% z4 ~3 }! ~2 Y7 n+ F4 l. I
[Practice] 1int a,b;
! ?, Z6 G$ p3 j* B$ P4 y6 m short int c;
- f3 d1 Q! z! s+ O$ C. d short d=100;6 ^/ Z, |5 g( E! w8 N' k
a=d-20;+ a" I2 ]6 Q' b) Z$ c
b=a+d;: A8 I+ b. p, k1 f& F
c=a+b+d;
; P1 R0 P# n7 q5 e/ M d=d-a+c-b;‘Vtable
$ V+ m4 v- b5 h% N* S a,2,0
1 J% a% ^0 h5 Y! U& v b,2,0% c: \' \6 a) S2 F9 d# t9 P9 K s7 `
c,2,04 d" D& S/ g% Q# I! T+ X+ n: i
d,2,100/ |5 h; V$ |2 U" z/ E
of Vtable: h6 j5 @: ?) _
‘Vupdate
7 Y" P% O9 J# a2 U 1,0;2,0
) ?; W. S+ c5 ~ 3,0
) v+ u, G7 \2 m6 V2 I) c 4,100
- r* u. ?" [+ e! K$ @1 r s( m7 I 1,80
; u- p) ], v0 b: A/ } 2,180
8 n$ X/ ^& K1 K& r8 ^ 3,360
) Z% G, R' c+ U, D 4,200; I. X! m) F& X, P
of Vupdate
: z% S5 n1 d1 {0 Y# N( w3 S of Practice- k! v2 {8 v6 y8 P
[Practice] 2int a=5;
$ l5 H. G. j5 B2 X0 D' b$ d N int b=9;
5 m# l! Y4 B7 F long int c;
3 q7 k- ^- c: n/ c, J long d;: N/ Q/ S# j: D7 L4 H! N9 f
c=a+b-7;
% q- k* D* t8 N' v: @( { d=a*b*c;0 t' N2 O. I n; S8 o' v3 k+ C
c=d*d*d;
: J/ A0 X) @& Z0 p a=c-d;‘Vtable
6 m s& e+ }; F0 K a,2,5! z- N' U% w0 J$ e; O4 J: h$ c1 ]
b,2,9% K/ w$ U# z$ P6 Z
c,4,0( l! I J ]7 a* @
d,4,0& d% c3 `* B8 u
of Vtable
* y( k3 ?0 ~/ G9 n/ @) _/ f( ] ‘Vupdate4 ~1 Q1 x5 e6 L
1,57 n+ ^( ^- i M" O4 o
2,9% k1 L# _/ G! h9 u+ F3 G' V& ]" D4 k2 Z
3,0
& `' j+ U# E, K: k( v/ b( l8 z U8 c( y 4,0
2 D. D0 \% Q3 C4 V, B9 Q9 I 3,7
6 I. l o1 q5 F( P9 M* g 4,315+ o2 Y6 `1 H5 h2 D( ]
3,31255875
: l @, @8 E a4 J5 k7 f4 n 1,-51125 S# d2 D) P6 f3 e5 q" ]
of Vupdate" ~; j! C4 N O" V9 L3 S1 C0 `) V
of Practice
% O4 }9 L) g9 J$ j4 H! l% x5 { [Practice] 3int a=6,b=19;
. E& W& l- p3 I9 V unsigned int c;
1 v; d7 ^& U2 h f3 d/ O0 o$ V# u int d;
. ~ C3 R7 w+ W6 e6 V c=a-b+7;0 A$ f; q5 [) |4 `. L: p- u$ L
d=b*c;. Y$ O% h- L! B4 _
a=b+c+d;; ]9 s6 n* g8 \; q" ~# G- P" c. y
b=-a;‘Vtable
8 H4 o8 S1 j' \; j! S a,2,64 Q# @. I1 k2 u) E0 R
b,2,19
% h( v- _$ N3 `+ o' _2 f i. b: o c,2,0
* X* u. c6 d, I d,2,05 \4 i5 J7 F$ {0 T2 r) k
of Vtable
, J) b" R; N% G. J ‘Vupdate
" ^5 B: x% y# w& J8 ? 1,6;2,19
# ~: k5 r1 r" C% n 3,0
! M$ t7 L, C6 R7 G0 I 4,07 r3 r! g, \# b+ o1 r9 e5 K
3,65530' X8 g6 ?) E; O2 z* |
4,-114$ g7 y. d2 B+ b9 a; c
1,-1011 j# {5 e! ?+ C! p2 E" z
2,101 a# {3 U+ q. |
of Vupdate Y8 F* k! b6 g' a2 h% Q {2 M
of Practice" x9 K# L! c% I/ H( g& P9 b+ ?
void main
/ |5 e9 a( Y! g# C 将main说明为返回void,即不返回任何类型的值
$ c: \4 H3 B: R5 X& E5 H( _3 B x,y被定义为long型" {2 U: M$ j# d; _- o6 D
a,b,c,d被定义为int型& `2 q! p L3 h+ J. n9 X
5-x" M! O8 @7 x ]+ ^) U9 Q( s0 k% b
6-y. [: m- E# m8 c! T$ r6 _
7-a& z, P* O9 p) o% S
8-b$ h4 i- Q$ I8 ]1 G6 d& p
x+a-c
5 G8 |$ i" B- C* {* \ y+b-d) M6 w5 i) A( S
显示程序运行结果 of long x,y;
4 T' e2 G& {+ P/ o, `5 f: M; R int a,b,c,d;
1 N( d: x7 R( g c=x+a;+ K# U% h# |" @4 G6 d- ]
d=y+b;
9 [( M2 q# T3 p# F* b5 L' P 从程序中可以看到:x, y是长整型变量,a, b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的类型转换是由编译系统完成的。有关类型转换的规则将在以后介绍。1 a2 X8 f* M, I* n% V% b
实型量
5 J! r) q& k/ C5 ~ c+ i; D1 ~ 实型常量
! S5 U. ~0 k8 i" I# `* @* ~- m1 X2 E 实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式: 十进制数形式指数形式$ Y( ~4 F+ ^) F5 q
1.十进制数形式
0 O, [. j0 ?6 L3 f3 H7 y+ f 由数码0~ 9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数 。! S" C6 ^" i3 Z* I2 E" g3 W, v, S
2.指数形式5 A+ f( Q8 B8 n0 V
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a为十进制数,n为十进制整数)其值为 a*10,n如: 2.1E5 , 3.7E-2 -2*)0.5E7 , -2.8E-2 -2*)以下不是合法的实数 345 E7 -5 53.-E3 2.7E
4 L# s. F, i& w/ t) T h 标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。例2.2说明了这种情况:
' i7 S% y' {9 o void main
, H/ f/ e5 O5 k$ S$ {- n$ d. R% V- E void 指明main不返回任何值利用printf显示结果结束- M' m, t$ V& n: t% N) f
实型变量6 @0 j, A8 s. T$ Z& i$ b; ?7 u5 a
实型变量分为两类:单精度型和双精度型,其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。, z1 E3 w+ h9 e* J
实型变量说明的格式和书写规则与整型相同。6 Q4 A0 { t* o+ G9 w( N$ z/ e
例如: float x,y;) i4 c3 I3 f5 |. C
double a,b,c;
9 O- b* _% E. K) C* O3 d3 W# V 实型常数不分单、双精度,都按双精度double型处理。
0 g$ H; O8 e: t" z- o# G& \ void main+ B" X4 z2 F |0 t4 u7 i) x' X
此程序说明float、double的不同6 P- m6 }2 q! o7 t9 ?9 \$ l
a
) h* Z8 b( x( k! }) V- O1 j7 d b
7 T ?3 X/ Q! X) X( s a-33333.33333
' m9 \/ S! ?1 M" r4 t& W M2 _1 W b-33333.33333333333;;
# `) Z1 D1 F$ m 显示程序结果. |# Z. @+ Z$ V n; ^9 P! D9 X( r# B
此程序说明float、double的不同; F. I2 G6 l$ y% T$ ?( U; r" L
float a;* j$ w6 |1 x& {) n8 f
double b;& d. o T& ]! q2 b
a=33333.33333; A" e5 w, J/ [9 P; E
b=33333.33333333333333;& x/ H3 o% L# v# b. u, t0 \
从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。9 Y- @0 Q% C. Q, U1 S8 _4 ^4 d
[Practice] floatint a=32;
2 K/ O3 M# h+ l/ j o$ f float b;) L* a: v' v- y* i# v
double d;
0 E0 Q& W/ G" d b=12345678;
! u# c7 ^+ L% |/ R3 k0 _2 S d=b*100;
_, P! t) k0 S+ A' r d=d+a;
, y/ `2 u4 o3 _! ^* a9 e* P/ D: x# R d=d+58.123456;‘Vtable
5 U0 s: J) K6 y0 W$ E a,2,32& t0 P' d; X4 K. n" @
b,4,0.0# }0 X: N% }3 ?2 {6 m: L$ h
d,8,0.0! B# k0 i& d9 o. ?* [1 R" D2 H
of Vtable
+ D3 f# ?5 W& ]( F7 J" s+ H% `3 N ‘Vupdate2 y* F& q: L, y% Y0 j& y5 Y1 W5 w
1,32. O5 X4 c; h! K2 t+ H3 ~- `
2,07 _4 O: t: A( Z' k6 Y
3,0
5 z8 ]9 t) h% k. m S; B* S8 M 2,12345678.000000 l N9 s6 P. M/ F3 k. w7 }& v
3,1234567800
* p4 B3 k- l1 H$ T- ~* t1 M) j 3,12345678325 O! ~* M p0 E# m
3,1234567890.123456
_ F4 B' Z7 L e of Vupdate: S" a6 y' W m) a, m+ ]( _
of Practice
6 A" C7 v' V( x2 y" s$ F0 r7 b5 X [Practice] 1int a=543;
' r9 n% Q0 w5 l7 j float b;' q% p0 L7 O8 S) p
b=123.123962+a;- K9 I1 |5 U- q9 k' X; n
b=b-100;
- R3 @% ?" s, ?/ X$ s0 c2 T a=b;‘Vtable( p: R7 S9 j0 d" X+ r j j. H
a,2,543/ w0 S/ s6 n7 u6 U ]% Q8 N6 u
b,4,0.0
( @2 G# v3 p% G |/ b of Vtable+ L/ u% y Y% e+ }5 H
‘Vupdate
; ]. ~& L4 }8 U/ O 1,543
! H5 H7 `2 v- u! P+ _1 ]. A) @ 2,0.0
7 A: s% A6 w' R' @) r D0 [/ e 2,123.123962
7 n2 I2 e; y- K 2,23.123962
, R$ r) i2 _% A5 ? 1,23
" l% A7 `$ I9 U8 S3 F" ?8 @- G of Vupdate. D: M3 x9 m0 D- a% l! K2 d
of Practice |