C语言入门之数据类型(2)

时间:2007-06-14 来源: 作者: 【字体: 减小 增大收藏 | 投稿
  

  整型变量

  整型变量可分为以下几类:

  1.基本型

  类型说明符为int,在内存中占2个字节,其取值为基本整常数。

  2.短整量

  类型说明符为shortint或short'C110F1。所占字节和取值范围均与基本型相同。

  3.长整型

  类型说明符为longint或long,在内存中占4个字节,其取值为长整常数。

  4.无符号型

  类型说明符为unsigned。

  无符号型又可与上述三种类型匹配而构成:

  (1)无符号基本型类型说明符为unsignedint或unsigned。

  (2)无符号短整型类型说明符为unsignedshort

  (3)无符号长整型类型说明符为unsignedlong

  各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。下表列出了TurboC中各类整型量所分配的内存字节数及数的表示范围。

财.软联盟.fs119.net


类型说明符    数的范围    分配字节数
int      -32768~32767    ■■
shortint   -32768~32767    ■■
signedint  -32768~32767    ■■
unsignedint 0~65535      ■■
longint -2147483648~2147483647  ■■■■
unsignedlong 0~4294967295    ■■■■

  整型变量的说明

  变量说明的一般形式为:类型说明符变量名标识符,变量名标识符,...;例如:

inta,b,c;(a,b,c为整型变量)
longx,y;(x,y为长整型变量)
unsignedp,q;(p,q为无符号整型变量)

  在书写变量说明时,应注意以下几点:

  1.允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。

  2.最后一个变量名之后必须以“;”号结尾。

  3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。
财管家园,fs119.net


[Practice]//1inta,b;
shortintc;
shortd=100;
a=d-20;
b=ad;
c=abd;
d=d-ac-b;'Vtable
a,2,0
b,2,0
c,2,0
d,2,100
ofVtable
'Vupdate
1,0;2,0
3,0
4,100
1,80
2,180
3,360
4,200
ofVupdate
ofPractice
[Practice]//2inta=5;
intb=9;
longintc;
longd;
c=ab-7;
d=a*b*c;
c=d*d*d;
a=c-d;'Vtable
a,2,5
b,2,9
c,4,0
d,4,0
ofVtable
'Vupdate
1,5
2,9
3,0
4,0
3,7
4,315
3,31255875
1,-5112
ofVupdate
ofPractice
[Practice]//3inta=6,b=19;
unsignedintc;
intd;
c=a-b7;
d=b*c;
a=bcd;
b=-a;'Vtable
a,2,6
b,2,19
c,2,0
d,2,0
ofVtable
'Vupdate
1,6;2,19
3,0
4,0
3,65530
4,-114
1,-101
2,101
ofVupdate
ofPractice
voidmain(){
longx,y;
inta,b,c,d;
x=5;
y=6;
a=7;
b=8;
c=xa;
d=yb;
printf("c=xa=%d,d=yb=%d\n",c,d);
}

  将main说明为返回void,即不返回任何类型的值

  x,y被定义为long型

  a,b,c,d被定义为int型 财管.家园.fs119.net

5->x
6->y
7->a
8->b
xa->c
yb->d

  显示程序运行结果oflongx,y;

inta,b,c,d;
c=xa;
d=yb;

  从程序中可以看到:x,y是长整型变量,a,b是基本整型变量。它们之间允许进行运算,运算结果为长整型。但c,d被定义为基本整型,因此最后结果为基本整型。本例说明,不同类型的量可以参与运算并相互赋值。其中的类型转换是由编译系统自动完成的。有关类型转换的规则将在以后介绍。

  实型量

  实型常量

  实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采用十进制。它有二种形式:十进制数形式指数形式

  1.十进制数形式

  由数码0~9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。

  2.指数形式

  由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为aEn(a为十进制数,n为十进制整数)其值为a*10,n 如:2.1E5(等于2.1*10,5),3.7E-2(等于3.7*10,)-2*) 0.5E7(等于0.5*10,7),-2.8E-2(等于-2.8*10,)-2*)以下不是合法的实数345(无小数点) E7(阶码标志E之前无数字) -5(无阶码标志) 53.-E3(负号位置不对) 2.7E(无阶码) 财软.联盟.fs119.net
标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如356f和356.是等价的。例2.2说明了这种情况:

财管.家园.fs119.net

voidmain()
{
printf("%f\n%f\n",356.,356f);
}

财 管家园 fs119.net


  void指明main不返回任何值 利用printf显示结果 结束

  实型变量

  实型变量分为两类:单精度型和双精度型,其类型说明符为float单精度说明符,double双精度说明符。在TurboC中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E38,只能提供七位有效数字。双精度型占8个字节(64位)内存空间,其数值范围为1.7E-308~1.7E308,可提供16位有效数字。

  实型变量说明的格式和书写规则与整型相同。

  例如:floatx,y;(x,y为单精度实型量)

   doublea,b,c;(a,b,c为双精度实型量)

  实型常数不分单、双精度,都按双精度double型处理。

财管家 园 fs119.net

voidmain(){
 floata;
 doubleb;
 a=33333.33333;
 b=33333.33333333333333;
 printf("%f\n%f\n",a,b);
} 财软联盟 fs119.net


  此程序说明float、double的不同

a■■■■
b■■■■■■■■
a<---33333.33333
b<---33333.33333333333;;

  显示程序结果

  此程序说明float、double的不同

floata;
doubleb;
a=33333.33333;
b=33333.33333333333333;

  从本例可以看出,由于a是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b是双精度型,有效位为十六位。但TurboC规定小数后最多保留六位,其余部分四舍五入。

[Practice]//floatinta=32;
floatb;
doubled;
b=12345678;
d=b*100;
d=da;
d=d58.123456;'Vtable
a,2,32
b,4,0.0
d,8,0.0
ofVtable
'Vupdate
1,32
2,0
3,0
2,12345678.00000
3,1234567800
3,1234567832
3,1234567890.123456
ofVupdate
ofPractice
[Practice]//1inta=543;
floatb;
b=123.123962a;
b=b-100;
a=b;'Vtable
a,2,543
b,4,0.0
ofVtable

财 管家园 fs119.net

'Vupdate
1,543
2,0.0
2,123.123962
2,23.123962
1,23
ofVupdate
ofPractice 财软联,盟,fs119.net

财软联盟 fs119.net

财管,家园,fs119.net


上一篇:C语言入门之数据类型(3)
下一篇:C语言入门之数据类型(1)

精品课程推荐