- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言电子教程第七章节
第七章 指针 本章主要知识点: ?指针基本概念。变量的地址和变量的值,指针变量的说明,指针变量初始化,指针的内容,指针基本运算(取变量地址,取指针内容,指针移动,指针比较),变量与指针的关系。 ?指针与函数的关系。指针作为函数的参数在函数之间传递,通过指针改变调用函数中的变量,函数返回值为指针类型,指向函数的指针。 ?指针与数组的关系。数组名与地址关系,使用指针操作数组,二维数组下标与指针关系,函数之间传递数组的指针操作,数组指针与指针数组的概念及两者的区别,mian函数参数。 ?使用指针处理字符串。关于字符串的基本规定,字符串结束标记,使用指针操作字符串的基本算法,常用字符串库函数。 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 动态存储管理 回本章首页 * * 本章的主要内容包括: ?指针 ?指针与变量 ?指针与数组 ?指针与函数 第七章 指针 回首页 内存地址:计算机内存的组织方式是把所有单元顺序排列,每个单元有一个顺序编号,称单元的地址。形象化地叫指针 地址本身也是用二进制编码的,任何数据对象在它被使用的时候,都必然有一个确定的存储位置,占据着确定数目的存储单元。 存储在内存的数据,最终都是根据其存储位置,通过存储单元的地址访问的。 任何变量,在其存在期间,总有一个确定的、固定的存储位置,即固定的地址。变量地址可能作为数据来操作。 指针变量是C语言提供的一种操作变量地址的机制。指针变量中保存的是其它对象的地址。 通过指针变量,可以进行对有关对象的访问和处理。 讨论C语言操作指针变量和普通变量的特点,什么是直接存取?什么是间接存取? 讨论使用指针进行程序设计的好处 7.1 地址和指针的概念 7.2.1 指针的定义 1. 定义指针变量的一般形式如下: 类型名 *指针变量名1,*指针变量名2,... *指针变量名n ; 2. 空指针 空指针是一个特殊的指针,它的值是0,C语言中用符号常量NULL(在stdio.h中定义)表示这个空值,并保证这个值不会是任何变量的地址。空指针对任何指针类型赋值都是合法的。一个指针变量具有空指针值表示当前它没有指向任何有意义的东西。 3. viod指针 (void *)类型的指针叫通用指针,可以指向任何的变量,C语言允许
您可能关注的文档
最近下载
- 成都第四十九中学新初一分班英语试卷.doc VIP
- 中经金融高频考点.doc VIP
- 竞聘演讲稿经营管理部部长.pptx
- 学堂在线 中医养生方法学 章节测试答案.docx VIP
- 整村授信专题培训ppt课件.pptx
- 2025年科技强国爱国主题班会《科技强国 强国有我》课件.pptx VIP
- 《常州武进常州燊荣金属科技有限公司“1·20”较大粉尘爆炸事故调查报告》警示教育专题培训.pptx VIP
- 智能化弱电工程投标文件的技术部分标书范本.docx VIP
- 行业分类专题研究:行业分类标准2.0版及修订说明-20200102-中信证券.pdf VIP
- 深圳市翰林学校英语新初一分班试卷.doc VIP
文档评论(0)