结构体与共同体课件.ppt
《结构体与共同体课件.ppt》由会员分享,可在线阅读,更多相关《结构体与共同体课件.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、结构体与共同体结构体与共同体第1页,此课件共45页哦学习目标学习目标n n学会建立和使用结构体、共同体。n n能够为数据对象动态分配和释放内存。n n能够建立和操作链表。n n理解链式数据结构的应用。第2页,此课件共45页哦n n11.1 引言n n数组是一组同类型的数据集合。n n结构体是一种构造数据类型n n用途:把不同类型的数据组合成一个整体-自定义数据类型第3页,此课件共45页哦n n11.2结构体类型及其变量的定义和初始化 n n11.2.1 结构体类型定义struct 结构体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.;成员类型可以是基
2、本型或构造型struct是关键字,不能省略合法标识符可省:无名结构体第4页,此课件共45页哦例 struct student int number;char name20;char sex;int age;namenumber sexage2字节2字节20字节1字节.结构体类型定义描述结构的组织形式,不分配内存第5页,此课件共45页哦定义结构体类型时要注意以下几点:定义结构体类型时要注意以下几点:1)结构体成员可以是任何基本数据类型,也可以是数组、指针类型。)结构体成员可以是任何基本数据类型,也可以是数组、指针类型。如上例中的如上例中的name成员为字符数组类型,成员为字符数组类型,sex成员
3、为字符指针成员。成员为字符指针成员。2)结构体类型可以嵌套定义,结构体中的成员可以是其它结构体类型。)结构体类型可以嵌套定义,结构体中的成员可以是其它结构体类型。3)定义的结构体类型,在编译时系统不对类型分配内存空间。)定义的结构体类型,在编译时系统不对类型分配内存空间。struct DATE int year;/年年 int month;/月月 int day;/日日;struct student long int number;/学号学号 char name8;/姓名姓名 int age;/年龄年龄 char*sex;/性别性别 struct DATE birthday;/出生日期出生日期
4、 结构体嵌套定义结构体嵌套定义;第6页,此课件共45页哦例 struct student int number;char name8;char sex;int age;struct DATE birthday;struct student stu1,stu2;n n11.2.2 结构体变量的定义n n先定义结构体类型,再定义结构体变量n n一般形式:一般形式:struct 结构体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.;struct 结构体名结构体名 变量名表列变量名表列;例#define STUDENT struct student STUD
5、ENT int number;char name8;char sex;int age;struct DATE birthday;STUDENT stu1,stu2;第7页,此课件共45页哦n n定义结构体类型的同时定义结构体变量一般形式:一般形式:struct 结构体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.变量名表列;变量名表列;例 struct student int number;char name8;char sex;int age;struct DATE birthday;stu1,stu2;第8页,此课件共45页哦n n直接定义结构体
6、变量直接定义结构体变量一般形式:一般形式:struct 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.变量名表列;变量名表列;例 struct int number;char name8;char sex;int age;struct DATE birthday;stu1,stu2;用用无名结构体无名结构体直接定义直接定义变量变量只能一次只能一次第9页,此课件共45页哦n n11.2.3 结构体变量的引用和初始化 1)对结构体变量中成员的引用)对结构体变量中成员的引用例如:例如:stu1.numer 相当于一个长整型的变量相当于一个长整型的变量stu1.name
7、 相当于一个数组名相当于一个数组名 如果一个结构体类型中又嵌套一个结构体类型,如果一个结构体类型中又嵌套一个结构体类型,访问该类型的变量时应采取逐级访问的方法,访问该类型的变量时应采取逐级访问的方法,直到得到所需访问的成员为止。直到得到所需访问的成员为止。例如:例如:stu1.birthday.yearstu1.birthday.month 第10页,此课件共45页哦2)对整个结构体变量的引用)对整个结构体变量的引用 相同类型的结构体变量可以整体赋值相同类型的结构体变量可以整体赋值例如:例如:struct student stu1,stu2;stu1=stu2;第11页,此课件共45页哦【例例
8、11-1】结构体类型变量的引用示例。结构体类型变量的引用示例。#includestruct DATE int year;/年年 int month;/月月 int day;/日日;struct student long int number;/学号学号 char name8;/姓名姓名 int age;/年龄年龄 char sex2;/性别性别 struct DATE birthday;/出生日期出生日期 结构体嵌套定义结构体嵌套定义;第12页,此课件共45页哦void main()struct student st1;/声明结构体变量声明结构体变量 scanf(%ld,&st1.number
9、);/输入学号输入学号 scanf(%s,st1.name);/输入姓名输入姓名 scanf(%d,&st1.age);/输入年龄输入年龄 scanf(%s,st1.sex);/输入性别输入性别 scanf(%d%d%d,&st1.birthday.year,&st1.birthday.month,&st1.birthday.day);/出生日期出生日期 printf(学号:学号:%ld 姓名:姓名:%s 年龄:年龄:%d 性别:性别:%s,st1.number,st1.name,st1.age,st1.sex);printf(出生日期:出生日期:%d-%d-%dn,st1.birthday.
10、year,st1.birthday.month,st1.birthday.day);第13页,此课件共45页哦n n11.2.3 结构体变量的引用和初始化n n形式一:struct 结构体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.;struct 结构体名结构体名 结构体变量结构体变量=初始数据初始数据;例 struct student int number;char name8;char sex;struct student stu1=110,“Lin Ping”,F;第14页,此课件共45页哦n n形式二:形式二:struct 结构体名结构体名
11、 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.结构体变量结构体变量=初始数据初始数据;例 struct student int num;char name8;char sex;stu1=110,“Lin Ping”,F;第15页,此课件共45页哦n n形式三:形式三:struct 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.结构体变量结构体变量=初始数据初始数据;例 struct int num;char name8;char sex;stu1=112,“Lin Ping”,F;第16页,此课件共45页哦n n11.3 结构体
12、数组n n结构体数组的定义struct student int num;char name8;char sex;int age;struct student stu2;struct student int num;char name8;char sex;int age;stu2;第17页,此课件共45页哦n n结构体数组初始化例 struct int num;char name20;char sex;int age;stu=,;顺序初始化:struct student int num;char name20;char sex;int age;struct student stu=100,“Wa
13、ng Lin”,M,20,101,“Li Gang”,M,19,110,“Liu Yan”,F,19;例 struct student int num;char name20;char sex;int age;stu=,;分行初始化:struct student int num;char name10;char sex;int age;struct student stu=100,“Lin ping”,M,22,111,“Lin hong”,M,29,120,“Li qiang”,F,16;全部初始化时维数可缺省n n结构体数组引用结构体数组引用引用方式:引用方式:结构体数组名结构体数组名 下
14、标下标.成员名成员名 struct student int num;char name10;char sex;int age;str3;stu1.age+;strcpy(stu0.name,”Li San”);第18页,此课件共45页哦n n11.4 结构体指针n n指向结构体变量的指针n n定义形式:定义形式:struct struct 结构体名结构体名 *结构体指针名结构体指针名;例例 struct student *p;struct student *p;n n使用结构体指针变量引用成员形式使用结构体指针变量引用成员形式(*结构体指针名结构体指针名).成员名成员名结构体指针名结构体指针名
15、-成员名成员名结构体变量名结构体变量名.成员名成员名第19页,此课件共45页哦n n用指向结构体的指针作函数参数n n用结构体变量的成员作参数用结构体变量的成员作参数-值传递值传递n n用指向结构体变量或数组的指针作参数用指向结构体变量或数组的指针作参数-地址传递地址传递n n用结构体变量作参数用结构体变量作参数-多值传递多值传递多值传递多值传递,效率低效率低第20页,此课件共45页哦11.5 用结构体变量作函数参数用结构体变量作函数参数【例11-5】将例11-2中输出功能用函数print 实现。#includestruct student /定义结构体类型 long int number;/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 与共 同体 课件
限制150内