第08章 结构与联合.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第08章 结构与联合

第八章 结构与联合 8.1 结构 结构是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 结构类型定义 8.2 结构变量的定义 先定义结构类型,再定义结构变量 一般形式: 定义结构类型的同时定义结构变量 一般形式: 8.3 结构变量的引用 引用规则 结构变量不能整体引用,只能引用变量成员 8.4 结构变量的初始化 形式一: 8.5 结构数组 结构数组的定义 三种形式: 结构数组初始化 8.6 结构和指针 指向结构变量的指针 定义形式:struct 结构名 *结构指针名; 例 struct student *p; 指向结构数组的指针 用指向结构的指针作函数参数 用结构变量的成员作参数----值传递 用指向结构变量或数组的指针作参数----地址传递 用结构变量作参数----多值传递,效率低 8.7 动态存储分配和链表 动态数据结构 动态数据结构是在程序运行过程中通过调用系统提供的动态存储分配函数逐步建立起来的,其存储空间(即动态数据结构)的大小在程序执行过程中可以改变,也可以随时教皇诶系统(成为释放空间);访问动态数据对象只能通过由动态存储分配函数返回的指针,因为动态数据对象不是通过变量说明建立的,它没有相应的变量名。 任何构造类型的数据,包括数组、结构、联合,都可以建成动态数据结构。例如,表示学生登记表的结构数组可以用一个称为链表的动态数据结构来代替。动态数据结构特别适合于那些数据成员不固定、或者说需要经常增加或减少的数据。 3010 3028 4016 用于动态存储分配的函数 void *malloc( n ) void *calloc( m,n ) void free( *p ) void *realloc( *p, n ) 3010 3028 4016 链表的一些特点 对单向链表中结点的访问只能从“头指针”开始。如果没有“头指针”,就无法进入链表,也无法访问其中各个结点。对单向链表中结点的访问只能顺序地进行 单向链表中最后一个结点中的指针项必须是NULL,不指向任何结点。 如果断开链表中某一处的链,则其后的结点都将“失去联系”,它们虽然在内存中存在,但无法访问到它们。 3010 3028 4016 8.8 联合 构造数据类型,也叫共用体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 联合类型定义 定义形式: typedef定义类型步骤 按定义变量方法先写出定义体 如 int i; 将变量名换成新类型名 如 int INTEGER; 最前面加typedef 如 typedef int INTEGER; 用新类型名定义变量 如 INTEGER i,j; 3018 head NULL data NULL 3010 3010 tail 3010 建其余结点的方法和步骤: 1.与第一个结点相同:为新节点分配存储单元,并使p指向新结点 p=(struct intnode *)malloc(sizeof(struct intnode)); 2.与第一个结点相同:将数据存入新建结点的数据域 scanf(“%d”,p-data); 3.将新建结点连入链表末尾 p-next=NULL; 使新结点成为新的链尾。 4.与第一个结点相同:使链尾指针指向新结点 tail=p; data tail-next=p; 使链表中原来的链尾指针指向新结点。 NULL 3018 p 3018 data NULL 4016 4016 p 4016 tail 4016 tail 3018 4040 p 4040 0 输出链表所有结点的方法和步骤: 1、开始时使遍历指针指向链头; p = head; 2.如果链表不为空(p 不等于 NULL),输出当前结点的数据域; printf(“%6d”,p-data); 3.每输出一个元素之后修改 p 的值,使遍历指针移向下一个结点; p = p-next; 4.重复2和3,直到

文档评论(0)

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

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

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档