《结构与联合》PPT课件.ppt
《《结构与联合》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《结构与联合》PPT课件.ppt(26页珍藏版)》请在三一办公上搜索。
1、第七章 结构与联合,构造类型二,结构和联合的概念,在数据中,经常有一些既有联系,类型又不同的数据,它们又需要一起处理。,如:学生基本档案的数据,字段:学号 姓名 性别 地址 分数类型:long char char char float,C语言允许用户按自己的需要将不同的基本类型构造成一种特殊类型,即结构和联合。,结构和联合的操作分为三个步骤:,根据需要定义结构或联合类型;通过定义的类型说明变量、数组、指针;引用变量、数组元素和指针指向的对象。,7.1 结 构,结构类型的定义,格式:,struct 结构名 type 成员1;type 成员2;type 成员n;;,结构标志。,用标识符命名的结构类
2、型名。,结构类型中所含的成员项及其类型。,struct student long num;char name20;int age;char add30;float score;,结构的定义确定了如下两点:,定义结构类型,确定结构中的成员项的名称及类型。,指明该结构类型的变量在内存中的组织形式。,结构变量的说明,定义结构只是确定该结构类型的名称及其成员项的组成及成员项的类型。必须由定义的结构类型说明结构变量,才开辟相应的内存空间以供使用。,结构变量的说明方式:,定义后说明,struct student long num;char name20;int age;char add30;float s
3、core;,struct student wang,zhang,liu;,用struct student 类型说明三个变量。,定义结构类型时说明变量,wang,zhang,liu;,无名结构方式说明变量,struct long num;char name20;int age;char add30;float score;wang,zhang,liu;,说明:,注意类型和变量的区别。成员项可单独使用。wang.age=20结构的成员项也可以是结构变量。,struct doc char name20;struct birth age;float sal;struct birth int year;
4、int mon;int day;,结构doc中的成员项是一个birth的结构变量!,结构变量的引用,结构变量都是以成员项作为引用单位,引用方式:,结构变量名.成员项名,wang.score=100;,说明:,结构变量的成员项与普通变量有相同的性质。,结构体变量的初始化,结构变量可以在说明时赋初值,称为初始化。,static struct student long num;char*name;char sex3;int age;float score;char addr 30;wang=99010101,“王五”,“男”,20,90.5,“上海”;,结构数组,结构变量也可以构造成数组,称为结构数
5、组。每个数组元素都是一个结构变量,都含有结构成员项。它们在内存中的地址是连续的。,数组的说明:,struct 结构名 结构数组名 常量表达式;,struct student long num;char name20;float score;stud3;,说明:,三个结构数组元素都含有student 的成员项。结构数组名stud,代表结构数组的首地址。外部和静态结构数组在说明时可以初始化。,=99010101,“wang”,67.5,99010102,“zhao”,78.5,99010103,“fun”,98.5;,举例:统计三个候选人的票数。,#include#define NUMBER 10
6、struct student int num;char name20;int count;lead3=1,“fun”,0,2,“tan”,0,3,“wang”,0;void main(void)int i,j,numb;for(i=0;i0)leadnumb-1.count+;else printf(“Selection errorn”);printf(“n”);for(i=0;i3;i+)printf(“%5s:%dn”,leadi.name,leadi.count);,定义结构说明数组并初始化。,循环输入统计票数,输出结果。,chp7ex1,结构指针,概念:指向结构变量首地址的指针称为结构
7、指针。结构指针加一,地址加一个结构变量所占的字节。,结构指针的应用:,先说明结构指针 struct student*p,stu1;,指向结构的指针。,指针指向同类型的结构变量或数组。p=,通过指针引用指针指向变量的成员项,引用方式为:,方式一:(*p).成员项名方式二:p-成员项名,结构指针主要用于对结构数组操作。,struct studoc int iNum;char*name;*p,wang=2001,”wang li”;p=,举例:,#include struct sam int num;char name20;char*addr;ws=101,“fun”,“Shanghai”,102,
8、“tan”,“Bejing”,103,“wang”,“Hefei”;void main(void)int i;struct sam*pws;pws=ws;for(i=0;inum,pws-name,pws-addr);,定义结构,说明数组并初始化。,说明结构指针。,指针指向结构数组。,通过指针引用成员项。,chp7ex2,结构与函数参数,当函数需要通过形参传递一个结构时,一般有两种处理办法:,传递一个结构指针(效率高)。,#includevoid mprintp(struct student*);struct student long num;char*name;float score;voi
9、d main()struct student s1;s1.num=99010101;s1.name=“wang hai”;s1.score=99;mprintp(,指向结构的指针。,传递一个结构变量(效率低)。,void mprintp(struct student);,s1,struct student sv,sv.num,sv.name,sv.score,结构变量。,返回结构变量的函数,当函数的返回值为一个结构变量时,称该函数为一个结构型函数。,#includestruct stu long num;char name10;float score;struct stu sv(void);v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构与联合 结构 联合 PPT 课件

链接地址:https://www.31ppt.com/p-5568141.html