结构体、联合体

结构体、联合体

ID:65681128

大小:166.00 KB

页数:28页

时间:2022-01-10

结构体、联合体_第1页
结构体、联合体_第2页
结构体、联合体_第3页
结构体、联合体_第4页
结构体、联合体_第5页
结构体、联合体_第6页
结构体、联合体_第7页
结构体、联合体_第8页
结构体、联合体_第9页
结构体、联合体_第10页
资源描述:

《结构体、联合体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章结构体与联合体§9.1结构体与结构体变量的定义结构体是一种构造数据类型。数组也是构造数据类型,但数组要求其数组元素的数据类型必须是一致的,而在实际编程中要处理的大量复杂数据对象,其组成成员(元素)的数据类型往往是不一致的,这时我们就可以使用结构体类型来描述。一个学生的5门课程的成绩:floatscore[5]一个学生的基本信息:学号、姓名、性别、成绩和生日。(5个数据是一个整体,但类型不一致)结构体:将不同类型的数据组织在一起,形成新的一种数据类型(9)§9.1.1结构体的定义定义形式:struct<结构体名>{结构体成员类型说明;};下面是定义了一个学生结构体数据类型:structst

2、udent{unsignedintnumber;char*name;charsex;floatscore;};一个结构体的结构体成员类型是没有限制的,可以是C语言中任何类型的变量,可以是基本数据类型,也可以是构造类型,还可以是指针类型。当结构体成员也是结构体类型时,称之为结构体的嵌套,即一个结构体中可以包含另一个结构体的结构体变量。将上例中定义的学生结构体数据类型再加上一个出生日期结构体成员,可描述如下:structdate/*date是结构体名,是一种类型而不是一个变量*/{/*day,month,year是结构体成员*/intday;intmonth;intyear;};structstu

3、dent{unsignedintnumber;char*name;charsex;floatscore;structdatebirthday;/*结构体嵌套*/};注意:(1)结构体是一种构造出来的数据类型。(2)结构体成员可以是任何数据类型。(3)使用结构体类型(结构体名)定义变量时应在结构体名前加struct关键字。§9.1.2结构体变量的定义结构体变量定义形式:struct<结构体名><结构体变量名表>;例如:structstudentd1,d2,*ps,d[10];/*先定义一个结构体类型,再使用结构体定义结构体变量*/或structstudent{unsignedintnumber;

4、char*name;charsex;floatscore;structdatebirthday;}d1,d2,*ps,d[10];/*该定义把结构体的定义和结构体变量的定义合在一起,定义了两个结构体变量d1和d2,一个指向结构体变量的指针pd和一个一维结构体数组d。*/用来指定该结构体变量所属的结构体模式用来给出一个或多个结构体变量名,多个结构体变量名之间用逗号隔开如果将结构体模式和结构体变量的定义合在一起,并且只进行一次结构体变量的定义,则可以省略结构体名,这样的结构体称为无名结构体。struct{<结构体成员的类型说明>}<结构体变量名表>;例如:struct{unsignedintnum

5、ber;char*name;floatscore;}s1,*ps,ss[50];structaddr{char*addr;…}addr;注意:(1)区别结构体名、结构体成员名和结构体变量名(2)三个名字可以相同(在三个不同的位置)(3)结构体变量占用的内存空间是各成员变量所占内存空间大小之和。§9.2结构体类型变量的引用和初始化§9.2.1结构体类型变量的引用在对结构体变量引用时,一般只能对其成员进行直接操作,而不准许对结构体变量整体直接进行操作。也就是说,通过对结构体变量成员的访问操作达到对结构体变量整体的访问操作。结构体变量成员的两种引用形式:第一种形式:使用结构体成员运算符方式<结构体变

6、量名>.<结构体成员名>d1.numberd1.named1.birthday.day(嵌套)“.”表示结构体成员变量的运算符,其结合性为从左至右。第二种形式:通过指向结构体变量的指针表示结构体的成员(成员指针)<指向结构体变量指针名>-><结构体成员名>(*<指向结构体变量指针名>).<结构体成员名>ps->number(*ps).number§9.2.2结构体类型变量的初始化结构体变量初始化:在定义结构体变量的同时,对其成员变量赋值struct<结构体名><结构体变量名>={初始数据列表};初始数据列表中有多个数据项时,数据项之间用逗号隔开,初始数据列表中的数据个数要和结构体的成员个数相同

7、,且对应数据要一致。structstudentd1,d2={50403,”zhangsan”,’m’,86.5,{3,12,1987}}例如,定义一个日期结构体类型变量。structdate{intday;intmonth;intyear;};structdated1={12,10,1999};§9.2.3结构体类型变量的简单例子(赋值)对结构体变量整体是不能直接输入输出的,只能通过引用结构体变量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。