C程序设计第11章结构体、联合体与枚举类型.ppt

C程序设计第11章结构体、联合体与枚举类型.ppt

ID:51619874

大小:380.50 KB

页数:61页

时间:2020-03-26

C程序设计第11章结构体、联合体与枚举类型.ppt_第1页
C程序设计第11章结构体、联合体与枚举类型.ppt_第2页
C程序设计第11章结构体、联合体与枚举类型.ppt_第3页
C程序设计第11章结构体、联合体与枚举类型.ppt_第4页
C程序设计第11章结构体、联合体与枚举类型.ppt_第5页
资源描述:

《C程序设计第11章结构体、联合体与枚举类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章结构体、联合体与枚举类型结构体类型是C语言允许用户定义的又一重要的构造数据类型。11.1结构体的概念11.2结构体数组11.3结构体指针11.4链表11.5联合体数据类型11.6枚举数据类型11.7自定义类型11.1结构体的概念结构体类型是一种构造数据类型,是数目固定,类型不同的若干有序数据项的集合。每个数据项称为一个成员。每一个成员可以是一个基本数据类型或者是一个构造类型。结构体数据类型具有很强的数据描述能力,但C语言中并不提供现成的结构体类型。因此,用户在使用一个结构体类型之前,必须先定义它,也就是要在

2、程序中构造所需要的数据类型。11.1.1结构体类型的定义结构体类型定义的一般形式为:struct结构体类型名{类型标识符成员名1;类型标识符成员名2;类型标识符成员名n;};例如,定义一个“学生信息”的结构体类型如下:structstudent{intnum;charname[10];charsex;intage;charaddr[50];intscore;};11.1.2结构体变量的定义、引用、初始化1.结构体变量的定义(1)先定义结构体类型,再定义结构体类型变量。这种定义的一般形式为:struct结构体类型名结

3、构体变量名表;如上面定义了“学生信息”的结构体类型structstudent后,就可以用它来定义结构体变量。例如:structstudentstul,stu2;定义了stul和stu2为structstudent类型的变量,编译系统为变量stul与stu2分配存储空间时,其存储格式与结构体类型structstudent所描述的保持一致,结构体中的各个成员按要求顺序存放。每一个structstudent类型的变量占用的存储单元为67个字节。(2)在定义结构体类型的同时定义结构体变量。这种定义的一般形式为:struct

4、结构体类型名{类型标识符成员名1;类型标识符成员名2;类型标识符成员名n;}结构体变量名表;例如:structstudent{intnum;charname[10];charsex;intage;charaddr[50];intscore;}stu1,stu2;这种定义与前面的定义功能相同,都是既定义了结构体类型structstudent,又定义了两个结构体变量stu1与stu2。(3)直接定义结构体类型的变量。其一般形式为:struct{类型标识符成员名1;类型标识符成员名2;类型标识符成员名n;}结构体变量名表

5、;例如:struct{intnum;charname[10];charsex;intage;charaddr[50];intscore;}stu1,stu2;2.结构体变量的引用结构体成员引用的一般形式如下:结构变量名.成员名其中“.”为结构体成员运算符,所有C语言运算符中它的优先级最高,因此可以把上述引用形式作为一个整体来看待。例如,stu1.name、stu2.score分别表示结构体变量stu1的成员name与结构体变量stu2的成员score。例11.1定义有关职工工资信息的结构体类型变量(包括编号、姓名、

6、基本工资、附加工资、水电费、实发工资),为结构体变量中的成员赋值并输出其值。structperson{intnum;/*职工编号*/char*name;/*姓名*/floatbase;/*基本工资*/floataddition;/*附加工资*/floatcost;/*水电费*/floatsalary;/*实发工资*/};main(){structpersonemployeea,employeeb;employeea.num=2086;employeea.name="Zhaoxiwang";printf("input

7、base,addition,cost:");scanf("%f,%f,%f",&employeea.base,&employeea.addition,&employeea.cost);employeea.salary=employeea.base+employeea.addition-employeea.cost;employeeb=employeea;printf("Number=%dName=%s",employeeb.num,employeeb.name);.printf("Base=%.2f

8、Addition=%.2f",employeeb.base,employeeb.addition);printf("Cost=%.2fSalary=%.2f",employeeb.cost,employeeb.salary);}程序运行结果为:inputbase,addition,cost:805.85,376.57,123.52↙Number=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。