第5章复杂构造数据类型.ppt
《第5章复杂构造数据类型.ppt》由会员分享,可在线阅读,更多相关《第5章复杂构造数据类型.ppt(28页珍藏版)》请在三一办公上搜索。
1、第五章 复杂构造数据类型,2/28,第五章 复杂构造数据类型,5.1 结构体5.2 共用体5.3 枚举类型,3/28,5.1.1 结构体的引出及使用,每条记录中数据的数据类型不相同,如何表示如下的数据信息?,结构体是由一些逻辑相关,但数据类型不同的分量组成的一组数据。,4/28,结构体的定义,注意不要忘了分号,struct 结构体类型名 数据类型 成员名1;数据类型 成员名2;:数据类型 成员名n;,用户定义的标识符,说明:定义了结构体类型,仅仅是定义了数据的组织形式,创立了一种数据类型,但并不会为这种结构体类型分配内存空间,只有定义了结构体变量,才会为变量分配空间。,例:struct stu
2、dent int num;char name10;char sex;int age;int score;char institute20;,5/28,定义结构体变量的方法(1)先定义结构体类型,再定义变量 struct student char name10;int age;int s1,s2;struct student st1,st2;,结构体 类型定义,结构体 变量定义,内存中结构体变量占有一片连续的存储单元,其占用的字节数可用sizeof 运算符算出:printf(“%dn”,sizeof(struct student);printf(“%dn”,sizeof(st1);结构体变量st
3、1和st2各自都需要16个字节的存储空间,nameages1s2,6/28,定义结构体变量的方法(2)定义结构体类型同时定义变量 struct student char name10;int age;int s1,s2;st1,st2;(3)直接定义结构体变量 struct char name10;int age;int s1,s2;st1,st2;,注意:这里没有结构体类型名,这种方式有时使用并不方便,因此不建议大家采用,7/28,结构体类型可以嵌套定义,例:struct date int year;int month;int day;struct stud char name10;stru
4、ct date birthday;int s1,s2;,或:struct stud char name10;struct date int year;int month;int day;birthday;int s1,s2;,8/28,结构体变量的引用格式:结构体变量名.成员名,struct student char name10;int age;int s1,s2;,struct student st1;strcpy(st1.name,“Mary”);st1.age=21;st1.s1=78;st1.s2=86;,成员运算符,9/28,说明结构体变量通常不能整体使用,不能整体输入、输出,只能
5、对单个成员分别引用。但当结构体变量作为函数参数或赋初值时,可以整体输入;或者两个相同类型的结构体变量,如果一个已经赋值,可以对另外一个整体赋值。例:如果s1已被赋值,则可以:s2=s1;如果成员本身又属于一个结构体类型,则这个成员也不能整体赋值,要用若干个成员运算符引用,如前面的birthday成员本身又是date类型的变量,则需:stu1.birthday.month=4;stu1.birthday.day=5;可以引用结构体变量成员的地址,也可以引用结构体变量的地址,要区分清楚。如:printf(“%x”,10/28,结构体变量的初始化,struct student char name10
6、;int age;int s1,s2;st1=“Mary”,21,78,86;,struct stud char name10;struct date birthday;int s1,s2;struct stud st2=“John”,1980,11,23,89,95;,struct student char name10;int age;int s1,s2;struct student st1;st1=“Mary”,21,78,86;,初始化,正确,这是赋值,错误C不允许这么做,初始化,正确,11/28,结构体变量的输入和输出C语言不允许结构体变量整体进行输入和输出,只能对结构体变量的成员进
7、行输入和输出,例:gets(st1.name);scanf(“%d%d%d”,12/28,5.1.2 结构体数组的引出及使用,一个结构体变量只能存放一个学生的信息,对于多个学生的信息,可以使用一个结构体数组来存放,结构体数组的每个元素是一个结构体类型的变量定义结构体数组的方法与定义普通数组的方法类似:结构体类型 数组名数组的长度;,13/28,结构体数组的定义及使用,1、定义结构体数组(1)先定义结构体类型 再定义结构体数组:struct student char name10;int age;int s1,s2;struct student st6;,(2)定义结构体类型的同时定义结构体数组
8、:struct student char name10;int age;int s1,s2;st6;,(3)直接定义结构体数组 struct char name10;int age;int s1,s2;st6;,不提倡使用该方法,14/28,结构体数组的初始化 将每个数组元素的数据用花括号 括起来。,struct student char name10;int age;int s1,s2;struct student st3=“Mary”,21,78,86,“Alex”,20,90,80,“Mike”,19,75,68;,15/28,结构体数组的引用引用某个数组元素的成员 例:puts(st0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复杂 构造 数据类型
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5636876.html