C语言--程序设计导论 作者 崔雅娟 第七章.pptVIP

C语言--程序设计导论 作者 崔雅娟 第七章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 指针 本章主要知识点: ?指针基本概念。变量的地址和变量的值,指针变量的说明,指针变量初始化,指针的内容,指针基本运算(取变量地址,取指针内容,指针移动,指针比较),变量与指针的关系。 ?指针与函数的关系。指针作为函数的参数在函数之间传递,通过指针改变调用函数中的变量,函数返回值为指针类型,指向函数的指针。 ?指针与数组的关系。数组名与地址关系,使用指针操作数组,二维数组下标与指针关系,函数之间传递数组的指针操作,数组指针与指针数组的概念及两者的区别,mian函数参数。 ?使用指针处理字符串。关于字符串的基本规定,字符串结束标记,使用指针操作字符串的基本算法,常用字符串库函数。 在任何一个变量使用前,都必须完成关于存储方面的有关安排:存放位置、占据多少存储单元。这个工作叫存储分配。 讨论存储空间的静态分配方法 讨论引入动态存储管理的好处 7.5.1 C语言标准动态存储管理函数 标准动态存储管理函数原型在?标准头文件stdlib.h中描述。 1. 存储分配函数malloc() void *malloc(size_t n) ; 形参类型size_t: 足够大的整数。 返回值类型(void *):通用指针,需要通过类型强制转化成特定的指针类型。 功能:分配一块能够放下大小为n的存储块,返回指向这个块的指针,如果存储申请不能满足,返回空指针。 7.5 动态存储管理 7.5.1 C语言标准动态存储管理函数 使用动态存储分配函数应该注意以下几点: (1)??????? 空间大小计算要使用sizeof函数进行计算; (2)??????? 调用malloc函数后,一定要检查返回值; (3)??????? 结果强制转换后才能赋值使用; (4)??????? 得到的空间使用时不允许越界; 2. 带初始化的存储分配函数calloc() void calloc(size_t n, size_t size); 形参类型size_t:n元素个数;size_t size:单个元素空间大小。 返回值类型为(void *):通用指针,需要通过类型强制转化成特定的指针类型。 功能:分配一块能够放下大小为n*size的存储块,全部内容清0,返回指向这个块的指针,如果存储申请不能满足,返回空指针。 7.5 动态存储管理 7.5.1 C语言标准动态存储管理函数 3. 动态存储释放函数free() void free(void *p); 功能:释放指针p所指的存储块。如果p的值为空,什么也不做。 调用free(q)后,p变量的指向没有改变。但不能再使用它的值。除非重新指向新的数据单元。 程序中,应养成对不再使用的存储块立刻释放的习惯。避免造成存储块丢失。 4. 分配调整函数realloc() void *realloc(void *p, size_t n); 功能:更改前面做过的存储分配,指针p指向一个过去分配的存储块,n表示现在希望的存储块大小,如果新的要求不能满足,返回NULL,p仍指向原来的位置。新的分配要求可以满足,返回新存储块的指针,内容与原来块中一样。其余部分不进行初始化。不能再通过p指针使用原来的存储块。 7.5 动态存储管理 7.5.2 C语言标准动态存储管理函数的使用 (1) 一定要检查分配成功与否,常用下面的结构: if ((p=(... *)malloc(...))==NULL ) { ... /* 对分配不成功的处理 */ } (2) 分配空间的大小一定要用运算符sizeof来计算。 (3) 分配成功后关于存储块的管理,系统完全不进行检查。 (4) 动态存储块的存在期,在其分配成功时开始,只有在用free语句释放才能导致其存储期的结束。 7.6 指针实例-- 注意下面问题 (1) 间接引用数组元素的指针出界; (2) 没有定义指针变量的初值即使用指针; (3) 错误指针赋值 (4) 错误操作 7.5 动态存储管理 回本章首页 * * 本章的主要内容包括: ?指针 ?指针与变量 ?指针与数组 ?指针与函数 第七章 指针 回首页 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 内存地址:计算机内存的组织方式是把所有单元顺序排列,每个单元有一个顺序编号,称单元的地址。形象化地叫指针 地址本身也是用二进制编码的,任何数据对象在它被使用的时候,都必然有一个确定的存储位置,占据着确定数目的存储单元。 存储在内存的数据,最终都是根据其存储位置,通过存储单元的地址访问的。 任何变量,在其存在期间,总有一个确定的、固定的存储位置,即固定的地址。变量地址可能作为数据来操作。 指针变量是C语言提供的一种

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档