【C语言程序设计】第7章 结构与联合.pptVIP

【C语言程序设计】第7章 结构与联合.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 结构与联合 ——构造类型二 结构和联合的概念 7.1 结 构 变 量 ⒉结构变量的定义 ⑶无名结构方式说明变量 ⒊结构变量的使用 ⒋结构体变量的初始化 7.3 结构数组 举例:统计三个候选人的票数。 7.4 结构与指针 举例: ⒎5 结构与函数 例: 返回结构变量的函数 例题返回结构的函数 返回结构指针的函数 ⒎6 动态内存与链表 1.内存分配函数 2.动态内存与链表的基本概念 链表 ⒊链表的操作 ⑵在尾部追加节点 ⑶删除节点函数 7.7 联 合(union) ⒊联合与结构的区别 举例: 7.8 枚 举 7.9 用户定义类型 ⑶用户定义结构或联合类型名 struct stud *search(char *mm) /* 查找子函数 */ { struct stud *p; for(p=class;pclass+4;p++) /* 遍历结构数组 */ { if(strcmp(mm,p-name)==0) return(p); /* 找到返回结构指针 */ } return NULL; /* 没找到返回空指针 */ } void output(struct stud *q) /* 输出子函数 */ { printf(%-10s%ld%6.1f%6.1f%6.1f\n, q-name, q-num,q-math,q-phys,q-chem); } 在前面的各章节中,介绍的各种数据类型(如整型、实型、字符型、数组、指针)一经说明,系统则为此变量开辟相应字节的内存单元,用以存放此变量的数值,在变量的生存期内此变量都将占有此内存单元,直至生存期结束后,系统回收相应的内存单元。 在这种方式中内存的分配和回收工作由系统进行,用户无权参与。因此用结构数组表示全班每个学生的基本信息时,如果事先难以确定班级人数,编程人员都会适当放一些余量,将结构数组定义的足够长,否则如果使用中出现了超出长度的情况就无法存储和处理,显然这将浪费存储空间。另一方面数组在内存中需要开辟大片地址连续的存储空间,当数组较长或结构数组中的信息较多时,需要的连续的存储空间则较长,这势必增加内存的压力,同时造成内存中一些离散的较小的存储空间的浪费。 链表的操作需要开辟内存单元以便插入或追加节点,删除节点 后需要释放节点占用的内存单元。C 语言提供了相应的函数。 ⑴malloc函数 使用方法: ptr=malloc(size); 分配内存的字节数。 返回空类型的指针。 成功:返回内存的地址。 失败:返回NULL。 void *ptr; ptr=malloc(sizeof (int) ) ptr ⑵void free(ptr) 作用: 释放ptr指向的由malloc分配的内存空间。 引用自身的结构和链表的概念 结构中的某个成员项,为指向该结构类型自身的指针,则称为 引用自身的结构。 struct student{ int num ; float score ; char *name ; struct student *next ; }; 指向自身的结构。 相同类型的结构指针。 链表是一种动态存储分配结构,通过指针相连,数据可以不连 续存放。 head 结构变量 NULL head 2000H 2000H 2400H 2400H NULL tail ⑴建立链表 步骤: ①定义引用自身的结构。 ②说明指向结构的指针,head(头指针),tail(尾指针)。 #iinclude stdio.h #include malloc.h struct slist{ char info ; struct slist *nextp ; } ; void main ( void) { struct slist *head , *tail , *find ; char c , d ; head=tail=(struct slist

文档评论(0)

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

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

1亿VIP精品文档

相关文档