




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章 结构体与共用体第一节 结构体类型变量的定义和引用 一、 结构体类型的定义结构体类型的一般定义形式如下: struct 结构体类型名 类型名1 成员变量名1; 类型名2 成员变量名2; 类型名n 成员变量名n; ;例如,一个考生的结构体类型可定义如下: struct exam char name30; char sex; int age; char addr40; int number; float score20; ;这里定义了一个exam类型的结构体,它包含有姓名name(字符数组)、性别sex(字符型)、年龄age(整型)、地址addr(字符数组)、考号number(整型)和成绩score(单精度浮点型)6个成员。可以看到,利用结构体类型数据,用户能够自行定义满足自己需要的数据结构,适应实际需求。二、 结构体类型变量的定义、引用和初始化结构体类型定义只提供了一个类型,这个类型就象整型(int)一样是一个数据类型,其中并没有具体的数据,系统不会给它分配存储单元。要使用它,应该定义结构体类型的变量,并利用这种变量来处理具体数据。1结构体类型变量的定义 用已定义的结构体类型来声明结构体类型变量,声明的一般形式为 struct 结构体类型名 变量表列; struct exam exam1; /*定义结构体变量exam1*/2结构体类型变量的引用引用结构体变量的一般形式为 结构体变量.成员 exame1.age=18;3结构体类型变量的初始化同其他类型的变量一样,结构体类型变量的初始化可以在定义时完成。如果需要在程序中进行初始化。则需要逐个成员逐级对最低一级的成员赋初值。第二节 结构体数组的定义、初始化和引用 一、 结构体数组的定义和初始化定义结构体数组与定义结构体变量一样,可以在定义结构体类型的同时声明,也可以在定义结构体类型之后声明。如定义一个一维数组的形式可以写成 struct 结构体名 结构体数组名长度; 二、 结构体数组的成员变量引用其一般引用形式为 数组名下标.成员变量名第三节 指向结构体类型数据的指针 一、 指向结构体类型数据的指针定义了结构体类型之后,可以声明结构体变量,也可以定义指向结构体变量的指针。 struct stu stu1=张文,男,21,上海路2号,30001,80,a,*p1; p1=&a , p=& stu1;现在共有3种引用结构体成员变量的格式: (1) 结构体变量.成员名,例如。 (2) (*q指针变量) .成员名,例如(*p).name。 (3) 指针变量-成员名,例如p-name。 二、 指向结构体数组的指针可以设定指向结构体数组或数组元素的指针和指针变量 struct stustu12=张文,男,21,上海路2号,30001,80,贾博丽,女,18,建设路123#,30002,92,*p; p=stu1; 三、 结构体类型数据作函数型参根据需要,可以向一个函数传递结构体变量的成员,结构体变量或者结构体数组。即结构体类型数据可以作函数的型式参数。1结构体变量的成员作函数型参2结构体变量和结构体变量的地址作函数型参3结构体数组作函数型参第四节 共用体类型变量的定义和引用一、 共用体类型及共用体变量的定义定义共用体类型的一般形式: union共用体名 类型名1 成员名1; 类型名2 成员名2; 类型名n 成员名n; ;例如: union stu char name8; float spend; int class; 此处定义了一个stu类型的共用体定义共用体类型之后再声明共用体变量: union stu c1,c2,*up; 二、 共用体变量的引用不能整体引用共用体变量来进行输入和输出,只能引用共用体变量的成员,如引用上例中声明的共用体变量,可以写为 printf(“%s”,); p=&c1 p-class=23;应该注意的是,因为共用体变量的各个成员共同使用同一段内存空间,因此在某一瞬时只能有一个成员起作用,而此时其它成员则并不存在。所以在赋值时只能实现对共用体变量的一个成员赋值,也不能实现对共用体变量的初始化。例如,如果有以下赋值语句: scanf(“%s”,&); c1.spend=4.5; c1.class=56;那么,前两个赋值在最后一个赋值语句执行之后就会丢失,使用下面的语句是不对的,因为此时name成员并没有值: if(name6=C) i+;因此,在引用共用体变量时应该注意当前存放在变量中的到底是哪个成员。由于共用体变量存储的这种特殊性,既不能将共用体变量作为含数参数,也不能使函数返回共用体类型的变量。共用体类型一般用来存取在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新思维体系构建与实战应用
- 化疗药物恶心呕吐护理
- 消防资格证培训大纲
- 淘宝售后规则培训
- 2025年智能可穿戴设备柔性传感技术在养老护理中的创新解决方案
- 墙体检测培训课件
- 二级医院卒中中心建设汇报
- 文化中心装修设计与后期物业运营管理协议
- 离婚协议书贷款购房房产分割与共同购房合同示范文本
- 离婚诉讼子女抚养权及财产分割合同范本编写指南
- 2025年银发经济老年教育产业现状与未来发展趋势白皮书
- 国开2025年秋季《形势与政策》专题测验1-5答案
- 2025-2030中国金红石开发利用市场发展潜力与产销规模规划报告
- 2025年智慧数据中心绿色运维解决方案深度解析
- 成本控制与成本分析方法指导手册
- 环境灾害预警系统-洞察及研究
- 无人机基地技术支持与服务方案
- 水果代销合同(标准版)
- 肠结核合并肠穿孔护理查房
- 矛盾纠纷调解课件
- 2025年公安系统公务员公开遴选笔试全真模拟题
评论
0/150
提交评论