第9章指针分析.ppt

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

① 用函数调用方式,改写问题9.9和问题9.10,编写一个专门的显示结构体成员函数,主函数调用时,用指向结构体的指针变量作实参。 ② 在问题9.11中,如果要求从键盘输入候选人姓名,如何修改程序? 1.指向结构体变量的指针变量的定义 指向结构体的指针变量的定义,与普通指针变量的定义完全一样,定义的一般形式为: struct 结构体类型名 *指针变量名; 2.指向结构体变量的指针变量的赋值 结构体变量的首地址就是该结构体变量的指针。用地址运算符,就可获得结构体变量的指针。因此,使用如下的赋值语句: 指针变量名 = 结构体变量类型名; 指针变量就指向了结构体变量,从而对结构体成员的访问就可通过指针变量来实现。 3.结构体变量指针的访问形式 4. 类似于用指向结构体变量的指针变量间接访问结构体成员,也可以用指向结构体数组及其元素的指针来处理结构体数组。 5.指向结构体的指针变量作为函数参数 类似于普通指针变量作为函数参数,用指向结构体的指针变量作为实参时,属于“地址传递”方式。 1.链表的结构 每个结点都包括两部分的内容:数据部分和指针部分 2. 链表的创建 在程序执行过程中从无到有建立起一个链表,即一个一个地开辟结点和输入结点数据,并建立起前后相连的关系。 3.链表的遍历 所谓遍历,就是根据已给的链表头指针,按由前向后的顺序依次访问单链表的各个结点。 问题9.12 建立一个存储1名学生通信录的单结点链表,其中通信录包括:序号、姓名和电话号码,并输出结果。 ① 扩展问题9.12,创建具有2个结点的链表,然后再遍历链表,检验结果。 提示:只要在单结点链表中,再添加一个结点,如图9-12所示。首先申请空间,输入数据,再链接到链表中去,即加上如下程序段: pTr = (NODEP)malloc(sizeof(NODE)); pHead-pNext = pTr; /*链接到链表中去*/ scanf(%d%s%s,pTr-iOrder,pTr-chName,pTr-chTel); pTr-pNext = NULL; /*指针域赋空NULL*/ ② 进一步扩展问题9.12,创建具有3个结点的链表,然后再遍历链表,输出结果。 问题9.13 建立一个存储多名学生通信录的线性链表,学生人数由用户输入,其中通信录包括:序号、姓名和电话号码,然后在屏幕上输出结果。 ①链表的查找操作 按给定的结点索引号或者检索条件,查找某个结点,如果找到指定的结点,则称检索成功,否则,称为检索失败。 ②链表的插入操作 在某两结点之间插入一个新的结点使它们的逻辑关系发生变化。 ③链表的删除操作 在链表中,删除某个特定的结点,也就是插入的逆过程。 问题9.14 扩充问题9.13,除了能创建和输出线性链表外,增加删除结点的功能,输入要删除的学生的序号,删除该结点。 ①编写一个结点插入函数 fnInsert(),能够在任意结点前插入数据,然后将前面编写好的链表创建函数fnCreat()、输出函数fnPrint()、和结点删除函数fnDelete()放在一起,完成班级学生通讯录程序,并注意人机交互提示。 ? 指针的定义、初始化、引用。 ? 指向变量的指针变量。 ? 指向数组的指针变量。 ? 指向结构体的指针变量。 1.指针变量的定义及初始化 一个变量在内存中的地址称为该变量的指针,一个变量的指针是常量,专门用来存放地址的变量称为指针变量,指针变量也是先定义后使用。一般地,指针变量的定义形式为: 类型标识符 *指针变量名 类型标识符 *指针变量名 = 变量名; ? ? *是间接引用运算符,为单目运算符,优先级与++、--相同,它可以访问指针变量所指向的变量的值。 形式: *指针变量? 问题9.1 输出变量的值和地址,观察输出方式与输出结果。 问题9.2 用指针访问方式,从键盘输入2个整数,再按从小到大顺序输出。 用指针访问方式,从键盘任意输入3个整数,再把最小的数输出。 问题9.3 用指针变量作为函数参数,编写函数fnSwap()实现两变量的交换,并在主程序中调用该函数,输出结果进行分析讨论。 问题9.4 试用fnSwap()函数交换实参变量的值,输入以下程序,观察运行结果。 ① 输入3个学生的“C语言程序设计”课程期末考试成绩,调用问题9.3中的fnSwap()函数,将成绩由小到大输出。 ② 编写一个求两数和的函数,且函数类型为void,加数和被加数由参数传入,和数由参数传出,在主程序中调用该函数,输出结果进行验证。 1.内存地址 在计算机硬件系

文档评论(0)

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

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

1亿VIP精品文档

相关文档