- 1
- 0
- 约1.74万字
- 约 103页
- 2018-01-21 发布于广东
- 举报
第10章 结构体与共用体 主要内容 概 述 定义结构体类型变量的方法 结构体变量的引用 结构体变量的初始化 结构体数组 指向结构体类型数据的指针 用指针处理链表 共 用 体 枚 举 类 型 用typedef定义类型 10.1 概 述 前面的章节已经介绍了基本类型的变量(如整型、实型、字符型变量等),也介绍了一种构造类型——数组,数组中的各元素是属于同一个数据类型的。 但是,在解决实际问题时,只有这些数据类型是不够的。有时需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是互相联系的。 10.2 定义结构体类型变量的方法 前面介绍了指定一个结构体类型,它相当于一个模型,其中并无具体数据,系统对它也不分配实际内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。可以采用以下3种方法定义结构体类型变量。 10.2 定义结构体类型变量的方法 先声明结构体类型再定义变量名 在声明类型的同时定义变量 直接定义结构体类型的变量 10.2 定义结构体类型变量的方法 直接定义结构体类型的变量 其一般形式为: struct {成员表列 }变量名表列; 即不出现结构体名。 关于结构体类型,有几点要说明: 10.2 定义结构体类型变量的方法 类型与变量是不同的概念,不要混淆。只能对变量赋值、存取或运算,不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,要对变量分配空间。 对结构体中的成员可以单独使用,它的作用与地位相当于普通变量。关于的成员的引用方法将在10.3节中介绍。 成员也可以是一个结构体变量 成员名可以与程序中的变量名相同,二者不代表同一对象。 10.3 结构体变量的引用 在定义了结构体变量以后,当然可以引用这个变量,但应遵守以下规则。 不能将一个结构体变量作为一个整体进行输入输出。例如,已定义student1和student2为结构体变量,并且它们已有值。不能这样引用: printf(%d,%s,%c,%d,%f,%s\n,student1); 只能对结构体变量中的各个成员分别进行输入和输出。引用结构体变量中成员的方式为: 结构体变量名.成员名 10.3 结构体变量的引用 如果成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级成员。只能对最低一级的成员进行赋值或存取以及运算。例如,对上面定义的结构体变量student1,可以这样访问各成员: student1.num student1.birthday.month 10.3 结构体变量的引用 对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。例如: student2.score=student1.score; sum=student1.score+student2.score; student1.age++; ++student1.age; 由于“.”运算符的优先级最高,因此student1.age++ 是对student1.age进行自加运算,而不是先对age进 行自加运算。 10.3 结构体变量的引用 可以引用结构体变量成员的地址,也可以引用结构体变量的地址。如: scanf(“%d”,student1.num); (输入student1.num的 值) printf(%o,student1); (输出student1的首地址) 不能用以下语句整体读入结构体变量: scanf(%d,%s,%c,%d,%f,%s,student1); 结构体变量的地址主要用于作函数参数,传递结构 体的地址。 10.4 结构体变量的初始化 和其他类型变量一样,对结构体变量可以在定义时指定初始值。 10.4 结构体变量的初始化 【例】对结构体变量初始化。 main() {struct student {long int num; char name[20]; char sex; char addr[20]; }a={89031,Li Lin,M,123 Beijing Road}; printf(NO.:%ld\nname:%s\nsex:%c\naddress:%s\n, a.num,,a.sex,a.addr); } 程序运行结果如下: NO.:89031 Name:Li Lin sex:M address:123 Beijing Road 10.5 结构体数组 定义结构体数组 结构体数组的初始化 10.5.1 定义结构体数组 和定义结构体变量的方法相似,只需说明其为数组即可。 如: struct student {int num; char
您可能关注的文档
最近下载
- 国之脊梁中国科学家的家国天下阅读分享PPT课件.pptx VIP
- 个人简历模板表格简历模板免费下载.docx VIP
- (2026春新版)部编版三年级道德与法治下册全册教案.doc
- 健康体适能评定理论与方法.pptx VIP
- JR DSX7 全中文说明书 和 Spektrum DX7 全中文说明书.docx VIP
- 2020年高级经济师(人力资源)考试真题及参考答案 .pdf VIP
- 社会体育指导专题9 (傅浩坚).ppt VIP
- 2026年山东司法警官职业学院单招综合素质考试模拟试题及答案解析.docx VIP
- 社会体育指导专题8(傅浩坚).pptx VIP
- 肝硬化门静脉高压症食管、胃底静脉曲张破裂出血诊治专家共识(2024版).pptx VIP
原创力文档

文档评论(0)