欢迎来到天天文库
浏览记录
ID:27734356
大小:1.30 MB
页数:34页
时间:2018-12-04
《[理学]第05章 结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、厦门理工学院 计算机科学与技术系1厦门理工学院高级语言程序设计教学课件第5章结构体与共用体厦门理工学院计算机科学与技术系2021/8/14教 师:谢小竹E-Mail:xzxie@xmut.edu.cn厦门理工学院 计算机科学与技术系22本章主要内容结构体类型与结构体变量结构体数组共用体枚举类型typedef定义类型厦门理工学院 计算机科学与技术系3结构简介存储一个班级中5名学员的信息(学号、姓名、性别和成绩)问题:I.使用数组MaryJohnPeterRoseKateFMFMF01020304058978.56797.564解决方案:scoren
2、umsexname不能建立数组间的关系II.使用多维数组MaryJohnPeterRoseKateFMFMF01020304058978.56797.564C语言不允许一个数组包含多种数据类型III.使用结构体numnamesexscoreC语言引入了称为结构体的数据存储方式“结构体”是一种构造数据类型,它是由若干数据项组合而成的复杂数据对象,这些数据项称为结构的成员。厦门理工学院 计算机科学与技术系45.1结构体的定义structstructurename{datatypevariable1;datatypevariable2;...};结构体
3、成员{};结构体名structstudentintnum;charname[20];charsex;定义结构体floatscore;C语言中的有效数据类型厦门理工学院 计算机科学与技术系5structstudent{intnum;charname[20];charsex;floatscore;};numnamesexstudent结构体定义放置在程序的开始部分,位于头文件声明之后;score结构体定义仅描述了一个结构的形式。如果要在程序里使用结构体,需要声明结构体变量。5.1结构体变量的定义厦门理工学院 计算机科学与技术系6structstude
4、nt{intnum;charname[20];charsex;intage;floatscore;charaddress[50];};结构体类型名结构体各成员定义结构体类型大括号外要加分号structstudentstu1,stu2;系统不为结构体类型的定义开辟内存单元,只当定义了结构体变量后才会为变量分配相应大小的内存单元。stu1和stu2在内存占几个字节?声明一个类型为student结构的变量,将会为该变量分配内存,大小是大于或等于其所有成员变量的大小之和。厦门理工学院 计算机科学与技术系7声明结构变量structstudent{intnu
5、m;charname[20];charsex;floatscore;};structstudentstudent1,student2;I.先定义结构,再声明结构变量structstudent{intnum;charname[20];charsex;floatscore;}student1,student2;II.在定义结构类型的同时声明结构变量struct{intnum;charname[20];charsex;floatscore;}student1,student2;III.直接声明结构变量5.1结构体变量的定义厦门理工学院 计算机科学与技术
6、系8几点说明:结构体类型与结构体变量概念不同类型:不分配内存;变量:分配内存类型:不能赋值、存取、运算;变量:可以(2)结构体可以嵌套例:structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];structdatebirthday;}student1;numnamebirthdaymonthdayyear例:structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday
7、;}student1;numnamebirthdaymonthdayyearstructPoint{intx,y;};structImg{inttag;structImg*pimg;//正确,可以包含自身类型的指针structImgimg;//错误,不能包含自身类型的变量};厦门理工学院 计算机科学与技术系9structdate{intmonth;intday;intyear;};struct{intnum;charname[20];charsex;structdatebirthday;floatscore;}student1,student2;
8、表示结构变量成员的一般形式是:结构变量名.成员名例如:student1.num、student2.sex、student1.birthd
此文档下载收益归作者所有