1 / 28
文档名称:

9第六章用户定制数据类型.ppt

格式:ppt   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

9第六章用户定制数据类型.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

9第六章用户定制数据类型.ppt

文档介绍

文档介绍:第六章
用户定制数据类型
1
研究式学习—C程序设计(第二章)
上讲内容回顾
函数的嵌套调用
变量的存储类型
全局量和局部量
内部函数和外部函数
编译预处理
2
研究式学习—C程序设计(第二章)
本讲主要内容
用户定制数据类型的基本概念
枚举
结构体
共用体
3
研究式学习—C程序设计(第二章)
在程序设计中,会遇到一些关系密切,但据类型不同的数据,用基本数据类型和数组都难以表示。
C语言提供了三种可以让用户自己定制的数据类型框架:
枚举可以用名字称呼一组整型数。
结构体可以将一组任意类型的数据组合在一起。
共用体可让一组任意类型的数据共享同一内存空。

所谓“枚举”是指将变量的值一一列举出来,
变量的值只能在列举出来的值的范围内。如一个星期7天,
一年4个季度,一年12个月等。
枚举可以将一组整型数分别命名,这样在程序中可以用名
字代替数字。可提高程序的可读性。
4
研究式学习—C程序设计(第二章)
问题:
从键盘输入一个整数,程序输出与之对应的今天
是星期几。
问题的分析
枚举类型数据要先定义其类型,再定义其类型的变量,然后才能引用。
可以先定义一个如下的枚举数据:
enum week_day
{ Mon=1,Tue,Wed,Thu,Fri,Sat,Sun
}workday;
此时,Mon的值为1,Tue,Wed,Thu,Fri,Sat,Sun的值分别为2,3,4,5,6,7。花括号中的这些名字就称为枚举分量。
5
研究式学习—C程序设计(第二章)
程序:
#include“”
main()
{ enum week_day
{ mon=1,tue,wed,thu,fri,sat,sun} workday;
/* 定义枚举类型及枚举类型变量*/
int i;
do
{ printf(“please input integer:\n”);
printf(“today is:”);
scanf(“%d”,&i);
workday=(enum week_day)i;
switch(workday)
{ case mon:printf(“today is:Monday\n”); break;
case tue:printf(“today is:Tuesday\n”); break;
case wed:printf(“today is:Wendnesday\n”);break;
case thu:printf( “today is:Thursday\n”); break;
case fri:printf(“today is:Friday\n”); break;
case sat:printf(“today is:Saturday\n”);break;
case sun:printf(“today is:Sunday\n”);break;
default: printf(“input error!”); break;
case -1:printf(“End\n”);
exit(0);
}
} while(i!=-1);
}
运行结果:
please input integer:
today is:1 < 回车>
today is:Monday
please input integer:
today is:7 < 回车>
today is:Sunday
please input integer:
today is:8 < 回车>
input error !
please input integer:
today is:-1 < 回车>
End
6
研究式学习—C程序设计(第二章)
枚举类型的定义及使用规则
1、枚举类型定义的一般形式如下:
enum 枚举名
{
枚举常量表列
};
定义了类型后,就可以用该类型来定义变量:
enum 枚举名变量名表列;
如:enum week_day workday;
2、枚举常量的值:
每一个枚举常量的值取决于在定义时排列的先后次序,第一个枚举常量的序号为0,以后顺序加1。
enum是定义枚举类型的关键字
枚举名是用户定义的枚举类型的名字
枚举常量分别代表不同的枚举值
若枚举常量的形式和顺序为:
mon,tue,wed,thu,fri,sat,sun,则这些枚举常量的值顺序
为0 ,1,2,3,4,5,6。
可在定义枚举类型时另行指定枚举常量的值,如:
enum week_day{ sun=7, mon=1,tue,wed,thu, fri,sat
}workday;
则指定sun为7,mon为1, tue为2,以后按顺序加
1,最后一个枚举常量sat