c语言中的数据类型

C语言中数据类型可分为基本类型,结构体类型,指针类型和空类型:

1数据类型:

1基本类型:

1.1字符型(本质上也是一种整型变量):

char : 1字节   -128~127

unsigned char : 1字节  0~255

由于字符是按其代码(整数)形式存储的,因此C99把字符型数据作为整型的一种。

1.1.1字符与字符代码:

字符集(包括ASCII字符集):字母,数字,专门符号,不能显示的字符(如空'\0',回车'\r')

注意 字符‘1’,整数字符1是不同的:'1'实际上表示以1的SACII码值(49)存储的二进制数,而1就是整数1的二进制数存储的。

1.1.2字符变量(用char定义的变量):

如:char buf=‘?’;表示将?的ASCII码值(63)赋给变量buf。

在输出时字符变量的值时,可以选择以十进制整型输出或以字符型输出。

当用printf("%d,%c\n",buf,buf);打印时输出,63和?。

 

1.2整型(不同的编译器字节大小不同:如TuboC2.0编译器中int是2字节,现如今int型基本上都是4字节):

类型符号长度(字节)取值范围
整型int2-32768~32768(即-2^15-2^15-1)
4-2^31~2^31-1
长整型long int或long4-2^31~2^31-1
双长整型long long(int)8-2^63~2^63-1
无符号双长整型unsigned long long(int)80~2^64-1
短整型short int或short2-2^15~2^15-1
无符号整型unsigned int20~2^16-1
40~2^32-1
无符号长整型unsigned long int 或unsigned long40~2^32-1
无符号短整型unsigned short int或unsigned short20~2^16-1

1.2实型(浮点型)

类型字节数有效数据位(小数点后)数值范围(绝对值)
float(单精度)460以及1.2*10^-38~3.4*10^38
double(双精度)8150以及2.3*10^-308~1.7*10^308
long double(和编译器有关,不过一般是16字节)8150以及2.3*10^-308~1.7*10^308
16190以及3.4*10^-4932~1.1*10^4932

1.3枚举型

通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:(标识符1,……,标识符n)

例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)

枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:

type daystype=('sun','mon','tue','wed','thu','fri','sat')

枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:

type daytype1=(monday,tuesday);

daytype2=(monday,wednesday);

可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday)

枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始

例如:已经定义daystype

ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday

但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。

例如:枚举值的输出

case day of

sunday:write('sunday');

monday:write('monday');

tuesday:write('tuesday');

wednesday:write('wednesday');

thursday:write('thursday');

friday:write('friday');

saturday:write('saturday');

end;

以上是个人学习总结,有错误或不足之处还请指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值