结构体、联合体、枚举.ppt
《结构体、联合体、枚举.ppt》由会员分享,可在线阅读,更多相关《结构体、联合体、枚举.ppt(37页珍藏版)》请在三一办公上搜索。
1、结构体,数据类型,结构体类型的定义,结构体类型定义的一般形式为:struct 结构体名 类型名1 成员名1;类型名n 成员名n;struct是结构体类型的标志。结构体名是由用户定义的标识符,它规定了所定义的结构体类型的名称。结构体类型的组成成分称为成员,成员名的命名规则与变量名相同。,结构体类型的定义,结构体类型定义形式例如:struct person char name20;char sex;int age;float height;表示定义了一个结构体类型struct person,它由name、sex、age和height四个成员组成。练习:定义一个结构体类型struct student
2、,要求包含学生姓名、学号、数学成绩、英语成绩、计算机成绩、总分、邮政编码、通讯地址。,结构体类型的定义,在结构体类型定义中要注意以下几点:结构体类型定义中可以包含另外的结构体,即结构体是可以嵌套的。例如:struct date int year;int month;int day;struct person char name20;char sex;struct date birthday;float height;,结构体类型变量,一、结构体变量的定义定义结构体类型,只是说明了该类型的组成情况,编译系统并没有给它分配内存空间,就象系统不为int等类型本身分配空间一样。只有当定义属于结构体类型
3、的变量时,系统才会分配存储空间给该变量。,结构体类型变量,一、结构体变量的定义1.先定义结构体类型,再定义变量。例如:struct person char name20;char sex;int age;float height;struct person per;表示先定义了结构体类型struct person,然后定义了一个struct person类型的结构体变量per。,结构体类型变量,一、结构体变量的定义结构体变量占用的内存空间是其成员所占内存之和,因此per 占用的内存空间为20+1+4+4=27个字节。结构体变量中的各成员在内存中按定义的顺序依次排列。注意:定义变量时,struc
4、t person必须在一起使用,它的用法与int、char等类型名的用法相同。,成员名,所占空间(字节数),name,height,age,sex,20,1,4,4,结构体类型变量,二、结构体变量的引用(1)对结构体变量中成员的引用引用的一般形式为:结构体变量名.成员名,结构体类型变量,(1)对结构体变量中成员的引用#include struct person char name20;char sex;struct data int year;int month;int day;float height;void main()person per;data birthday;,printf(E
5、nter the name:);gets(per.name);per.sex=M;per.birthday.year=1982;per.birthday.year+;per.birthday.month=12;per.birthday.day=15;per.height=(175+176)/2;printf(%s%3c%4d/%2d/%d%7.1fn,per.name,per.sex,per.birthday.month,per.birthday.day,per.birthday.year,per.height);,结构体数组,一、结构体数组的定义定义结构体数组的方法和定义结构体变量的方法一样
6、,只是必须说明其为数组。例如:struct person char name20;char sex;int age;float height;struct person per3;,结构体数组,一、结构体数组的定义定义结构体变量的三种方法都可以用来定义结构体数组。例如:struct person char name20;char sex;int age;float height;per3;,struct char name20;char sex;int age;float height;per3;,结构体数组,二、结构体数组的初始化和一般数组一样,结构体数组也可以进行初始化。struct pe
7、rson char name20;char sex;int age;float height;per3=LiPing,M,20,175,WangLing,W,19,162.5,Zhao Hui,M,20,178;数组每个元素的初值都放在一对大括号中,括号中依次排列元素各成员的初始值。与一般数组的初始化一样,如果给出了全部元素的初值,则数组的长度可以不指定,由系统根据初值的数目来确定数组长度。,结构体数组,三、结构体数组的引用对结构体数组的引用一般是对数组元素的成员进行引用。引用只要遵循对数组元素的引用规则和对结构体变量成员的引用规则即可。程序功能:输出结构体数组各元素的成员值void main
8、()struct person char name20;char sex;int age;float height;per3=Li Ping,M,20,175,Wang Ling,F,19,162.5,Zhao Hui,M,20,178;,int i;for(i=0;i3;i+)printf(%18s%3c%4d%7.1fn”,peri.name,peri.sex,peri.age,peri.height);,作业,定义一种类型stu可以放学生的姓名、学号、英语成绩,其中英语成绩按照百分制给的成绩。要求输入3个人的信息,然后按英语成绩由高到低输出这3个人的信息。,结构体指针变量,指向结构体变量
9、的指针也称为结构体指针,它保存了结构体变量的存储首地址。,1.结构体指针的定义形式:struct 结构体类型名*指针变量名;,struct student stu,*p;p=&stu;,2.结构体变量成员的三种访问方法,(1)结构体变量.成员名 stu.ID(2)(*结构体指针).成员名(*p).ID(3)结构体指针-成员名 p-ID,结构体指针运算符“-”结构体指针-结构体成员,struct person char name10;int age;struct person*p,s,boy3=”Zhang”,18,”Wang”,20,”Li”,17;p=boy;,对于已定义的结构体数组,若用一
10、个变量来存放该结构体数组在内存中的首地址,则该变量为指向结构体数组的指针变量。,例如,定义结构体类型person和结构体指针变量p。,定义了结构体数组boy和结构体指针变量p,且p指向数组boy的首地址。,结构体变量的首地址就是其指针,用取地址符得到指向结构体变量的指针变量称为结构变量的指针变量指向结构体变量的指针在使用时同样必须要先定义,再赋值,然后才可以使用如果有指针p 指向结构变量a,则 a.math 等价于(*p).math 等价于 p-math使用指向结构数组的指针变量引用结构数组成员时,同指针指向数组时是类似的要明确指针当前指向的数组元素,同时要考虑结构体成员的引用方法,联合体,一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 联合体 枚举
链接地址:https://www.31ppt.com/p-6599074.html