欢迎来到天天文库
浏览记录
ID:44962740
大小:397.00 KB
页数:51页
时间:2019-11-06
《第8章_结构体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第八章结构体与联合体7/16/20211程序设计基础(C语言)wh8.1结构体8.1.1结构体类型的定义8.1.2结构体类型变量的定义与使用8.1.3结构体类型变量的赋值与初始化8.1.4结构体类型数组的定义与引用8.1.5结构类型指针的定义和引用8.1.6结构体类型数据的动态存储分配8.1.7链表及其基本操作8.2联合体8.3其他自定义数据类型8.3.1枚举类型8.3.2类型定义符typedef小结习题7/16/20212程序设计基础(C语言)wh8.1结构体8.2联合体8.3其它自定义数据类型7/16/20213程序设
2、计基础(C语言)wh8.1结构体在处理实际问题时,经常会遇到需要将若干不同类型的数据项组合在一起作为一个整体来进行处理。例如,在对学生信息进行处理时,一个学生的数据可能包括姓名、学号、年龄、性别、成绩等多个成员,各成员的数据类型不同,此时不能用一个数组来存放这类数据。在C语言中,允许用户定义构造数据类型——“结构”,或称为“结构体”。结构体相当于数据库中的记录,它是一种构造类型,是由若干“成员”组成的。7/16/20214程序设计基础(C语言)wh8.1.1结构体类型的定义struct结构体名{成员表;};结构体类型的一般
3、定义形式为:定义结构体类型的关键字用户命名的标识符结构体类型定义的结束符7/16/20215程序设计基础(C语言)wh例如:定义“学生纪录”的结构体structstudent{intnum;charname[10];charsex;intage;floatscore;};注意:结构体类型定义仅仅是定义了一个特定的复合数据类型,描述了这一类型数据的公共属性,为了在程序中使用该结构体类型的具体对象,还需要说明这种类型的变量。7/16/20216程序设计基础(C语言)wh8.1.2结构体类型变量的定义与使用定义结构体类型变量可以
4、有3种方法:1.先定义结构,再说明结构变量struct结构体名变量1,变量2,…,变量n;structstudentstu1,stu2,stu3;7/16/20217程序设计基础(C语言)wh2.在定义结构类型的同时说明结构变量struct结构体名{成员表}变量表;例如:structstudent{intnum;charname[10];charsex;intage;floatscore;}stu1,stu2,stu3;7/16/20218程序设计基础(C语言)wh3.直接说明结构变量struct{成员表}变量表;stru
5、ct{intnum;charname[10];charsex;intage;floatscore;}stu1,stu2,stu3;7/16/20219程序设计基础(C语言)whC语言规定结构体类型的定义可以嵌套,即结构体中成员也可以是一个结构体。例如:定义student结构体(1)先定义date结构体structdate{intyear;intmonth;intday;};(2)再定义student结构体structstudent{intnum;charname[10];charsex;structdatebirthday
6、;floatscore;};7/16/202110程序设计基础(C语言)wh8.1.3结构体类型变量的赋值与初始化在定义结构体变量的说明语句中,可以对定义的结构体变量赋初值,即初始化。由于结构体占用内存一片连续的存储单元,因此,结构变量的初始化与前面介绍的数组相似,只要把对应各成员的初值放在花括号中即可。7/16/202111程序设计基础(C语言)wh例结构体变量的初始化。#includevoidmain(){structstudent{intnum;charname[10];charsex;intage
7、;floatscore;}stu={1001,“wang”,‘M’,19,98};printf("Number=%dName=%s",stu.num,stu.name);printf("Sex=%cScore=%f",stu.sex,stu.score);}7/16/202112程序设计基础(C语言)wh8.1.4结构体类型数组的定义与引用1.结构体类型数组的定义定义结构体类型数组前要先定义一个结构体类型,然后就可以像定义普通数组一样定义结构体类型数组。与定义结构体变量类似,定义结构体类型数组也有3种方式。
8、7/16/202113程序设计基础(C语言)wh方式1:structstudent{intnum;charname[10];charsex;intage;floatscore;}stu[10];方式2:structstudent{intnum;charname[10];charsex;intage;fl
此文档下载收益归作者所有