- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言第7章自定义数据类型
7.1 结构体与 结构体变量 7.2 结构体数组 7.3 结构体指针 7.4 结构体与函数 7.5 结构体的应用 7.6 联合体 7.7 位段 7.8 枚举 7.9 用typedef定义类型 7.1 结构体与结构体变量7.1.1 结构体 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体---自定义数据类型 结构体类型定义 例:定义结构体类型,描述下列数据 学生情况: 包含学生的学号、 姓名、 性别、 年龄、 C语言课程成绩。 如考虑10门课程成绩, 加上总成绩与平均成绩,可作如下定义: struct student { int no; /*学号*/ char name[10]; /*姓名*/ char sex; /*性别*/ int age; /*年龄*/ float score[10]; /*10门课程成绩*/ float tcj, acj; /*总成绩, 平均成绩*/ }; 例:定义结构体类型,描述个人数据: 包含姓名、性别、年龄、身高、体重、住址: 定义日期结构体类型包括:年、月、日: struct date { int year; /*年*/ int month; /*月*/ int day; /*日*/ }; 7.1.2结构体类型变量的定义 先定义结构体类型,再定义结构体变量 一般形式: 定义结构体类型的同时定义结构体变量 一般形式: 直接定义结构体变量 一般形式: 结构体类型定义的说明: 7.1.3 结构体变量的使用 由结构体变量名引用其成员 结构体变量不能整体引用,只能引用变量成员 7.1.4 结构体变量的初始化 形式一: 形式二: 形式三: 结构体变量存储分配示意图 7.2 结构体类型数组 结构体数组的定义 三种形式: 结构体数组初始化与引用 结构体数组初始化 7.3 结构体指针 指向结构体变量的指针 定义形式:struct 结构体名 *结构体指针名; 例 struct student *p; 总结:结构体成员变量引用方式 指向结构体数组元素的指针 7.4结构体与函数 用结构体变量的成员作参数----值传递 用指向结构体变量或数组的指针作参数----地址传递 用结构体变量作参数----多值传递,效率低 9.5结构体变量作为函数参数 总结 注意:ANSI C允许用整个结构体作为函数的参数传递,但是必须保证实参与形参的类型相同 把一个完整的结构体变量作为参数传递,虽然合法,但要将全部成员值一个一个传递,既费时间又费空间,开销大,因此一般不采用 在函数中要结构体中成员变量的值,需要传结构体指针变量或结构体地址 函数的返回值为结构体类型 struct student input() {/*输入一个学生的数据*/ int i; struct student stud; scanf(″%ld″,stud.no);/*输入学号*/ gets(stud.name);/*输入学生姓名*/ for(i=0;i3;i++)/*输入学生的3门成绩*/ scanf(″%f″,stud.score[i]); return stud;/*返回结构体数据*/ } 链表概述(1) 所谓链表是指若干个数据项(每个数据项称为一个“结点”)按一定的原则连接起来。每个数据项都包含有若干个数据和一个指向下一个数据项的指针,依靠这些指针将所有的数据项连接成一个链表。 链表概述(2) 内存动态管理函数 动态分配存储 根据需要开辟或释放存储单元 相关函数 malloc函数 calloc函数 free函数 说明 应包含malloc.h或stdlib.h malloc函数 函数原型 typedef unsigned size_t; void *malloc(size_t size); 参数 size:分配存储空间的字节数 返回值 若成功,返回指向分配区域起始地址的指针 若失败,返回NULL calloc函数 函数原型 void *calloc(size_t n, size_t size); 参数 n :分配内存的项目数 size:分配内存的每个项目的字节数 返回值 若成功,返回指向分配区域起始地址的指针 若失败,返回NULL free函数 函数原型 void free(void *ptr); 参数 ptr:要释放的内存区地址 说明 释放prt指向的内存区 释放后的内存区能够分配给其他变量使用 realloc函数 函数原型 void *realloc(void *ptr,unsigned int
您可能关注的文档
- 6.表单及其控件的创建与使用.ppt
- 托福听力辅导-TOEFL听力最常考的学习类场景词汇_托福听力.docx
- 6.项目合成.doc
- 托福阅读材料什么是生活中的“诱压因素”.docx
- 托管客服注意事项.doc
- 托福阅读材料音乐和外语培训能提高语言能力.docx
- 5-第4章Geomagic11点阶段处理技术.ppt
- 扬州江铃汽车公司实习报告.doc
- 6蜂蜜加工操作流程图.doc
- 6第六章区域经济一体化1.ppt
- 白天晚上教学课件.ppt
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题带答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解一套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及完整答案详解1套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解1套.docx
- 2025年山东菏泽市事业单位招聘急需紧缺岗位目录(第一批)笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及答案详解1套.docx
- 画西瓜教学课件.ppt
最近下载
- 高中物理万有引力与航天模拟专题.doc VIP
- 《教父(1972)》完整中英文对照剧本.pdf VIP
- ABB喷涂机器人生产节拍提升的改进实施工艺方案.pdf VIP
- 航天电器产品手册y50系列电连接器.pdf VIP
- 2025年广水市城市社区专职工作者招聘85人考试备考试题及答案解析.docx VIP
- 二年级语文暑假习题二.doc VIP
- 房建工程监理实施细则样本合集(207页).docx VIP
- 2018-2024年海峡杯数学竞赛真题及答案(二年级).pdf VIP
- 数据处理与信息共享合作协议.doc VIP
- 2023-2024学年辽宁省实验中学、大连八中、大连二十四中、鞍山一中、东北育才学校高一下化学期末检测试题含解析.doc VIP
文档评论(0)