9结构体与共用体.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 结构体与共用体 计算机基础教研室 李飞 C 语言程序设计 2020/6/10 2 主要内容 ? 结构体类型的定义 ? 结构体变量的访问 ? 结构体与共用体比较 2020/6/10 3 一个学生的信息有 学号 、 姓名 、 性别 、 年龄 、 住 址 、 成绩 等。 一本图书的信息有 分类编号 、 书名 、 作者 、 出版社 、 出版日期 、 价格 、 库存量 等。 如何描述这些类型不同的相关数据? 1. 结构体与结构体类型的定义 信息管理 结构体 —— 一种构造类型数据 结构体 由若干不同类型的数据项组成, 构成结构体的各个数据项称为 结构体成员 。 2020/6/10 4 struct 结构体名 { 数据类型 1 成员名 1; 数据类型 2 成员名 2; …… 数据类型 n 成员名 n; } ; 结构体类型定义的一般形式: ? struct 为关键字; ? 结构体名 是用户定义 的 类型标识 。 ? { } 中是组成该结构体 的 成员 。成员的 数据 类型 可以是 C 语言所允 许的任何数据类型。 2020/6/10 5 例如图书类型的定义: struct bookcard { char num[10]; /* 图书分类编号是字符数组类型 */ char name[30]; /* 书名是字符数组类型 */ char author[30]; /* 作者是字符数组类型 */ char publisher[60]; /* 出版社是字符数组类型 */ float price; /* 价格是单精度实型 */ int n; /* 库存量是整型 */ } ; 例如学生类型的定义: struct student { char num[8]; /* 学号是字符数组类型 */ char name[30]; /* 姓名是字符数组类型 */ char sex; /* 性别是字符型 */ int age; /* 年龄是整型 */ char addr[60]; /* 住址是字符数组类型 */ int score[6]; /* 成绩是整型数组类型 */ } ; 2020/6/10 6 2 结构体变量的定义 ? 利用已定义的结构体类型名定义变量 struct 结构体名 变量名表; 例如: struct bookcard book1[100]; struct student s[30], t1, t2; 按照结构体类型的组成,系统为定义的结构体 变量分配内存单元。结构体变量的各个成员在内存 中占用连续存储区域, 结构体变量 所占内存 大小为 结构体中 每个成员 所占用内存的 长度之和 。 num 8 个字节 name 30 个字节 sex 1 个字节 age 2 个字节 addr 60 个字节 score 12 个字节 struct student { char num[8]; char name[30]; char sex; int age; char addr[60]; int score[6]; } ; 2020/6/10 7 结构体类型与变量的说明 ? 类型 与 变量 是不同的概念。 ? 应先定义一个 结构体类型 ,而后再定义 结构体变量 。 ? 系统对 类型 不分配空间,仅对 变量 分配空间。 ? 只能对 变量 赋值、存取或运算,而不能对一个 类型 赋值、存取或运算。 ? 成员 也可以是 结构体变量 。 struct date { int year,month,day; } ; struct student { char num[8]; char name[30]; char sex; struct date birthday; /* 成员为结构体类型 */ char addr[60]; int score[6]; } ; num 8 个字节 name 30 个字节 sex 1 个字节 birthday year 2 个字节 month 2 个字节 day 2 个字节 addr 60 个字节 score 12 个字节 2020/6/10 8 ? 对结构体中的成员,可以单独使用,它的 作用与地位相当于普通变量。 ? 成员名可与程序中的变量名相同时,也可 与不同结构体类型的成员名相同,二者代 表不同的对象。 2020/6/10 9 3. 结构体变量的定义与初始化 ? 在定义结构体类型的同时定义变量 例如: struct student { char num[8],name[20],sex; int age; float score; } st[30]; struct 结构体名 { 成员定义表; } 变量名表;

文档评论(0)

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

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

1亿VIP精品文档

相关文档