第9章 用户定义类型.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 用户定义类型

第9章 用户定义类型 §9-1 结构体 §9-2 联合体 §9-3 枚举 §9-4 类型定义 §9-5 动态存储管理 9.1.1 结构(类型)的定义 结构(类型)的定义是对结构体的描述,结构的定义并不引起系统为该结构分配内存空间,只是制定了结构使用的内存模式。 定义形式 struct 结构类型名 { 数据类型 成员名1; 数据类型 成员名2; …… 数据类型 成员名n; }; 9.1.2 结构变量 说明 [存储类型] struct 结构类型名 结构变量名; 9.1.2 结构变量 9.1.2 结构变量 成员的引用 结构变量名.成员名 初始化 struct student a={1,”Mary”,20,90,” ……”}; 输入输出 不允许直接输入输出只能对结构体中的成员分别进行输入输出以下可以的。 scanf(“%d%s%d%f%s”,a.num,a.name,a.age, a.score,a.address); printf(“no:%d,name:%s,age:%d,score:%f,\naddress:%s”,a.num,a.name,a.age,a.score,a.address); 9.1.2 结构变量 结构的嵌套 结构体可以嵌套,即成员可以是另一结构的变量 结构体嵌套,只能对最低一级成员进行赋值、输入输出等运算 9.1.2 结构变量 9.1.2 结构变量 注意: (1)?结构 类型与结构变量是不同的概念; (2)结构体成员的使用与普通变量相同,可单独使用; (3)成员名可以与程序变量名相同,但二者代表不同对象 int num; struct student{ int num;......}; (4)嵌套的数据成员,只有到最后一层才能进行各种操作 9.1.3 结构数组 说明: 存储类型 struct 结构类型名 结构数组名[元素个数]; struct student class9705[40]; 初始化: struct student class9705[40]={{…},{…},…{…}}; 输入输出: for(i=0;i40;i++) scanf(“%d%s%d%f%s”,class9705[i].num, class9705[i].name,class9705[i].age, class9705[i].score,class9705[i].address); 9.1.3 结构数组 9.1.4 结构指针 结构指针—指向结构体的指针,保存结构体的存储区首地址 说明形式: 存储类型 struct 结构名 *结构指针名; struct student *pstu; 赋值: struct student class9705[40],a,*pstu; pstu=class9705; /*pstu=a;*/ 引用: (*结构指针名).成员名(*pstu).num 结构指针名-成员名 pstu-num . -同属第一优先级 *属第二优先级 初始化 struct student *pstu=class9705; pstu++; 相当于加一个结构类型的长度 9.1.5 结构体与函数 9.1.5.1 利用参数传递结构体 结构变量在函数间的传递 数据复制 单向传递,调用函数-被调用函数 形参为结构体变量,实参为结构体变量 地址传递 双向传递 形参为结构体指针,实参为地址 表面上为数据复制,即形参和实参均为结构体变量,但结构体的成员为指针,则实际完成的地址传递 数据复制 地址传递(1) 地址传递(2) 9.1.5 结构体与函数 2、 结构数组在函数间的传递数据复制 双向传递 形参为结构指针或结构数组,实参为地址 9.1.5 结构体与函数 四十个学生,要求找出成绩最高者的姓名和成绩 struct student{ int num; char name[12]; float score; }; main() { struct student stu[40],*p; int i, max(struct student *,int); for(i=0;i40;i++) scanf(%d%s%f,stu[i].num,stu[i].name,stu[i].score); i=max(stu,40); p

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档