第九章结构体和共用体.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章结构体和共用体

第九章 结构体和共用体 本章要点 结构体类型定义、结构体变量定义及使用 结构体数组 结构体指针 结构体与函数 链表 共用体 本章学习目标 掌握结构体类型定义、结构体变量定义、成员引用、初始化方法 掌握用指针操作结构体和结构体数组的方法 理解结构体在函数参数传递中的应用 理解存储空间的动态分配与回收 理解链表的概念、掌握链表的基本操作 理解共用体的含义、掌握共用体的使用 3.1 应用实例 设计超市购物系统,需要把超市内的各种商品的信息存储起来以备查询,每种商品都有多种信息——商品编号、商品名称、商品单价等。如果把每个商品的多种信息分别存放在一些变量中,那变量数目会很多且不好管理。这时我们就需要把这些不同类型的信息组合在一个有机的整体中,以便于操作。结构体类型数据就可以满足这种需要。 9.1.1 结构体类型的定义 C语言没有提供结构体类型,而是提供了结构体类型的定义方法,我们在使用时需要自己定义。 struct 结构体名 { 结构体成员列表 }; 在定义结构体成员列表时,成员的定义形式为: 类型名 成员名; 举例 我们定义一个描述商品信息的结构体类型。 struct goods { int number; char name[10]; float price; }; struct goods就是结构体类型名 该结构体类型包含三个成员 9.1.2 结构体变量的定义 (1)使用结构体类型名定义变量 struct goods { int number; char name[10]; float price; }; struct goods g1, g2 ; 存储空间示意图 各成员按定义顺序依次存放, 成员的存储空间是相邻的。 成员number是整型,占4个字节; 成员name是字符型数组,占10个字节 成员price是实型,占4个字节; 变量g1和g2各占18个字节存储空间。 9.1.2 结构体变量的定义 (2)定义结构体类型的同时定义变量 struct goods { int number; char name[10]; float price; } g1, g2 ; 结构体变量g1和g2的定义直接跟在结构体类型struct goods的定义之后。 9.1.2 结构体变量的定义 (3)直接定义结构体类型变量 struct { int number; char name[10]; float price; } g1, g2; 在这种定义方式下,没有给该结构体类型命名,因此无法在其他位置定义该结构体类型的变量,也无法将它们用作函数参数。 9.1.2 结构体变量的定义 (4)使用typedef typedef可为一个已存在的数据类型定义一个类型名。 typedef int integer; 为int类型指定一个新的类型名integer。 typedef float real; 为float类型指定一个新的类型名real。 integer a, b; /*a,b为int类型变量*/ real c, d; /*c,d为float类型变量*/ 注意:typedef并不引入一个新的数据类型,只是给已定义的数据类型指定一个同义词。 9.1.2 结构体变量的定义 typedef struct goods { int number; char name[10]; float price; } kind; 为结构体类型struct goods起了一个新的名字kind。 注意:这里的kind不是结构体变量,而是struct goods的别名。既可以使用struct goods去定义结构体变量,也可以使用kind去定义结构体变量。比如: struct goods g1; kind g2; 9.1.3 结构体变量的使用 在定义了结构体变量后,访问结构体各成员的语法格式为: 结构体变量名. 成员名 结构体变量的成员可以像普通变量一样进行各种运算和操作。例如: g1.number=10446; strc

文档评论(0)

xutiantian250 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档