结构体与共用体

结构体与共用体

ID:38289984

大小:49.50 KB

页数:6页

时间:2019-06-07

结构体与共用体_第1页
结构体与共用体_第2页
结构体与共用体_第3页
结构体与共用体_第4页
结构体与共用体_第5页
资源描述:

《结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第11章结构体与共用体本章主要考查结构体类型、结构体变量、结构体数组、结构体指针的定义和引用方法,结构体类型变量的特点,以及共用体及枚举类型的概念、定义和引用,并掌握己有类型定义别名的方法。一、考试要点1、结构体(1)结构体类型的定义结构是一种“构造”而成的数据类型,在使用之前必须先定义,然后才可能用来定义相应的变量、数组等。定义如下:struct结构名{成员列表;};例如:structstd{intnum;charname[10];floatsco;};定义的该结构类型之后,这种类型在内存中所占间为所有成员所占内存之和。(2)结构类型的说明说明结构体变量有以下3种

2、方法:方法一:先定义结构体,再说明结构体变量structstd{intnum;charname[10];floatsco;};structstdstu1,stu2;方法二:在定义结构体的同时说明结构体变量structstd{intnum;charname[10];floatsco;}stu1,stu2;方法三:直接说明结构变量struct{intnum;charname[10];floatsco;}stu1,stu2;(3)结构变量的引用结构变量成员的表示一般形式为:结构变量名.成员名如:stu1.sco若成员本身又是一个结构,则必须逐级找到最低级的成员才可以使用,

3、一般形式为:外层结构变量.外层成员名.内层成员名如:stu1.birth.year(4)结构变量和赋值和初始化结构变量的赋值即是给各个成赋值,可用输入输出语句来实现。结构变量的初始化是指在结构变量说明的同时,给它的各个成员赋初值,初始化的格式为:struct结构名{结构成员列表;}结构变量={初始数据表};(5)结构指针变量的说明和使用结构指针的说明形式为:struct结构名*结构指针变量名结构指针变量访问结构变量各个成员的一般形式为:(*结构指针变量).成员名或结构指针变量->成员2、共用体(1)共用体类型的定义和共用体变量的说明其定义方法为:union共用体名{

4、成员表;};如:unionunit{intclass;charoffice[10];};共用体类型在内存中所占空间等于成员中占空间最大的。共用体变量的说明的方法与结构体变量的说明方法相同。(2)共用体类型变量的赋值和使用形式为:共用体变量.成员名3.枚举类型枚举类型的定义形式为:enum枚举名{枚举值表;};枚举类型变量的说明与结构体和共用体相同。4.类型定义符typedef用typedef来给已知类型取别名。如:typedefintINTEGER这样,inta,b;与INTEGERa,b;的功能是一样的.二、典型例题分析例10.1设有结构体及其数组和指针变量的定义

5、语句struct{intx;}y[2],*p=y;则下列表达式中不能正确表示结构体成员的是()(2005年1月份安徽省计算机水平考试二级《C语言程序设计》试题)A)(*p).xB)*(p+1).xC)y[0].xD)(&y[1])->x答案:B解析:.优先级高于*,因此B相当于*((p+1).x),而p+1为地址,不能使用.来引用结构体成员,则B错误例10.2以下语句中,指针p的data域正确的引用方式为()typedefstructmode{intdata;structnode*lchild,*rchild;}Btree;Btree*p;(2005年12月份安徽省

6、计算机水平考试二级《C语言程序设计》试题)A)p.dataB)p->dataC)(*p)->dataD)p[data]答案:B解析:p为指向Btree的指针,则引用data域方法为p->data例10.3unionstu{intI;floatt;inta[4]}x;则x在内存中占用的字节数是()(2006年6月份安徽省计算机水平考试二级《C语言程序设计》试题)A)2B)4C)8D)14答案:C解析:int为2个字节,float为4个字节,数组a为4*2=8个字节,union类型的变量所占字节数即为最长的域所占字节数。例10.4如有以下定义structperson{c

7、harname[9];intage;};structpersonclass[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16};根据上述定义,能输出字母M的语句是()(2007年1月份安徽省计算机水平考试二级《C语言程序设计》试题)A)printf(“%c”,class[3].name);B)printf(“%c”,class[3].name[1]);C)printf(“%c”,class[2].name[1]);D)printf(“%c”,class[2].name[0]);答案:D解析:John和17为

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

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

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