C程序设计与实践第5章(课件).ppt
《C程序设计与实践第5章(课件).ppt》由会员分享,可在线阅读,更多相关《C程序设计与实践第5章(课件).ppt(34页珍藏版)》请在三一办公上搜索。
1、程序设计与实践,目录第5章结构体5.1概述5.2结构体应用实例5.3结构体类型的定义5.4结构体变量和结构体数组的定义5.5结构体变量的使用方法5.6结构体应用5.7本章小结,第5章结构体5.1概述数组只能保存一批类型相同的数据,但在很多场合下,会有一组类型不同的信息,例如:关于学生的一组信息,包括学生姓名(字符串)、学号(字符串)、课程成绩(实数)等,无法用数组来表示。这里可以使用C语言提供的另外一种构造数据类型来实现,就是结构体类型,也称之为结构数据类型。,5.2结构体应用实例例5.1图书销售清单打印,其中图书信息包括:书名、价格、册数等。#include void main()struc
2、t booktype/说明结构类型struct booktype,包含三个成员char name100;/书名,字符串型float price;/价格,实型int number;/册数,整型;,/分别定义结构体变量book1、book2、book3,并赋初值struct booktype book1”Learn C Programming”,40.4,20;struct booktype book2”c programming language”,43.1,15;struct booktype book3”History of C Programming Language”,37.8,28;/
3、定义中间变量用于计算部分金额和总金额float part1,part2,part3,total;printf(”书名单价数量金额nn”);part1 book1.price*book1.number;/结构变量字段值的应用,计算第一类书book1的金额,printf(”%35s%6.2f%4d%7.2fn”,book1.name,book1.price,book1.number,part1);part2 book2.price*book2.number;/计算第一类书book2的金额printf(”%35s%6.2f%4d%7.2fn”,book2.name,book2.price,book2
4、.number,part2);part3 book3.price*book3.number;/计算第一类书book3的金额printf(”%35s%6.2f%4d%7.2fn”,book3.name,book3.price,book3.number,part3);total part1 part2 part3;/计算三类书的总金额printf(”ntotal%53.2fn”,total);,程序输出结果:图51例5.1程序运行结果程序中定义了图书的信息,包括:字符数组类型的书名name、实数类型的价格price、整数类型的册数number等三个字段,涉及三种数据类型。在这个程序中,我们看到了结
5、构类型booktype的定义(struct booktype;部分),结构类型booktype的结构体变量book1.book2、book3的定义并赋初值,如:(struct booktype book1”Learn C Programming”,40.4,20;),结构体变量字段的引用如:(part1book1.price*book1.number;)。本程序中共有三类书的信息,制表输出每一类书的书名、单价、数量、金额,最后输出所有书的总价格。,5.3结构体类型的定义结构体类型是一种新的数据类型,与基本类型不同的是,结构体类型本身需要定义,而基本类型是C语言已经定义过的,不需要程序设计人员来
6、定义。结构体类型的定义包含如下信息:结构体类型名字(可以没有)、结构体全部成员的名字及其类型,结构体的成员有时也称之为字段,它们的类型可以相同也可以不同。结构体类型定义以后,就可以使用结构体类型名字来定义该结构体类型的变量了。结构体类型定义的一般形式:struct 结构体类型名 成员列表;,;例如结构体“图书”类型的定义如下:struct booktype char name100;/书名,字符数组类型float price;/单价,实数类型int number;/数量,整数类型;结构体成员的类型可以是简单类型,可以是数组类型,还可以是其他的结构体类型,也就是说,结构体类型的定义可以嵌套。例如
7、:struct date int year,month,day;,;struct booktype char name100;/书名,字符数组类型float price;/单价,实数类型int number;/数量,整数类型struct date delivery;/交付时间;在结构体中,各成员都占有自己的内存空间,一个结构体变量的长度等于所有成员长度之和。例5.2检测结构体类型占用的内存空间大小。,解题思路:直接使用sizeof运算符,对于结构体类型struct booktype求值。#include void main()struct booktype char name100;float
8、 price;int number;,printf(”%d”,sizeof(struct booktype);输出结果是108。说明:某些编译程序(如:VC6.0),为结构体类型分配空间时,可能会比其所有成员所占空间之和略长,例如:如果把“char name100;”改为“char name97;”、“char name98;”、“char name99;”程序结果都是108。占用空间值为4的倍数,并大于或等于各字段字节数之和。,5.4结构体变量和结构体数组的定义结构体类型变量可以是普通变量或者是数组元素,结构体类型的数组元素是指其元素的数据类型是结构体类型的数组,简称为结构体数组。结构体变量
9、、结构体数组定义有三种形式:struct 结构体类型名 变量、数组列表;struct 结构体类型名 成员列表 变量、数组列表;struct 成员列表 变量、数组列表;上述三种形式中,我们推荐使用第一种形式,它的特点是类型定义和变量定义分离,也便于对变量赋初值,结构清晰。下面分别介绍三种形式的写法和实例。,1.先定义结构体类型,再定义结构体变量或结构体数组,必要时还可以进行初始化例5.3对于例5.1程序的改进,注意结构体类型定义、结构体数组定义、结构体数组初始化、输出格式控制等用法。#include void main()struct booktype/说明结构体类型char name100;f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 实践 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5335665.html