- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C10-结构体选编
第十章 结构体与共用体 结构体类型与结构体类型变量的定义 结构体变量的引用与初始化 结构体数组 结构体和指针 链表 共用体 枚举类型与自定义类型 第一个例子 #include string.h struct students { char name[10]; char num[6]; float score_math; float score_db; float score_C; } stu[4]={{Li,809931,81,82,91},{Zhang,809932,71,82,96}, {Wu,809933,88,72,89}, {chen,809934,81,82,91}}; main() { int i; float sum_math=0,sum_db=0,sum_C=0; for(i=0;i4;i++) { sum_math+=stu[i].score_math; sum_db+=stu[i].score_db; sum_C+=stu[i].score_C; printf(%10s\t%8s:\t%6.2f,\t%6.2f,\t%6.2f\n,stu[i].name,stu[i].num,stu[i].score_math,stu[i].score_db,stu[i].score_C); } printf(\n); printf(\t\taverage:\t%6.2f,\t%6.2f,\t%6.2f,sum_math/4,sum_db/4,sum_C/4); } 10.1 结构体 10.2 结构体变量的定义 三种定义方法: 1. 先声明结构体类型,再定义结构体变量 2. 声明结构体类型的同时定义结构体变量 10.3 结构体变量的引用 引用规则: 结构体变量不能整体引用,只能引用变量成员 引用方式: 结构体变量名 . 成员名 结构体嵌套时逐级引用 对结构体变量成员的使用同普通变量。 10.4 结构体变量的初始化 10.5 结构体数组 结构体数组的定义同结构体变量的定义,有三种形式。 结构体数组初始化 10.6 结构体和指针 指向结构体变量的指针 定义形式:struct 结构体名 *指针变量名; 例 struct student *p; 指向结构体数组的指针 结构体作函数参数: 用结构体变量的成员作参数----值传递 同一般变量 用指向结构体变量或数组的指针作参数----地址传递 型参和实参均为同类型的指针 用结构体变量作参数----“整体”传递 型参和实参均为同类型的结构体(占内存空间,不常用) 10.7 指针处理链表 链表:一种能够实现动态存储分配的数据结构,根据需要开辟内存单元。 简单链表结构: “头指针” 存放一个地址,链表的起始地址 “结点” 链表中的每一个元素,包括两部分: 实际数据、下一个“结点”的地址 “表尾” 特殊的节点,数据部分存放实际数据 地址部分存放了“NULL”(“空地址”),表示不再指向其它元素,该链表到此结束 链表的存储 利用指针变量,存储头指针 利用结构体变量存储结点,其中,包括一个指向本结构体类型的指针变量。例如: 链表应用的准备 静态链表,p274,例11.7 c.next=NULL;使得c.next不指向任何有用的单元 p=p-next;使得p指向p的下一个单元 处理动态链表的相关函数 void *malloc(unsinged size);在内存中动态分配长度为size的连续空间 void *calloc(unsigned n, unsigned size);在内存中动态分配n个长度为size的连续空间 void free(void *p);释放由p指向的内存区 动态链表的应用 建立动态链表 输出链表 对链表的删除操作 对链表的插入操作 对链表的综合操作 10.8 共用体 构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 共用体类型定义 定义形式: 10.9 枚举类型 枚举:将变量的值一一列举出来。 声明枚举类型: enum weekday{sun,mon,tue,wed,thu,fri,sat}; 定义枚举型变量 enum weekday workday,week_end; 或 enum weekday{sun,mon,tue,wed,thu,fri,sat}workday; 变量引用 workday=mon; week_end=sun; 枚举说明 枚举元素作为常量处理,不能对枚举元素赋值 如mon=1;就是错误的 枚举元素作为常量,其值
您可能关注的文档
最近下载
- nikkidenso喜开理日VPH-HA-disc伺服驱动器使用说明.pdf
- 附件一1#群房天井落地式盘扣式卸料平台计算书20241028.doc VIP
- 糖尿病周围神经病变临床诊疗规范.ppt VIP
- 2025河北省省直事业单位招聘 (统一招聘)1363人笔试备考题库及答案解析.docx VIP
- (完整版)公司合规管理制度(试行).pdf VIP
- 朗文9000核心词汇.pdf VIP
- 2025秦皇岛市海港区招聘中小学教师371名笔试模拟试题及答案解析.docx VIP
- 2025天保出入境边防检查站第一次边境管控专职辅警招聘(10人)模拟试卷含答案详解.docx VIP
- 2025年河北秦皇岛市海港区公开招聘中小学教师371名笔试参考题库附答案解析.docx VIP
- 小学语文阅读理解万能答题公式模版 .pdf VIP
文档评论(0)