- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章指针和引
8.6.1 new和delete运算符的用法 1.new操作符的使用 C++提供了操作符new和new[]来创建动态变量。 (1)new用来动态创建单个变量。语法格式为: new 类型名 (2)可以在申请内存空间时,同时对该内存空间初始化。 (3)new[]用来创建动态变量数组,语法格式为: 类型名[整型表达式] 2.delete操作符的使用 (1)delete 指针变量。释放指针变量所指向的内 存空间。对应上面的第一点,释放时用语句: delete p; //释放p所指向的内存空间 (2)delete[] 指针变量 或者 delete[表达式] 指针变量 例8-27 动态实现内存分配和撤销 8.6.2 使用new和delete运算符的注意事项 两个运算符,应注意以下几点。 (1)用new运算符分配的存储空间,其初值是不确定的。 (2)用new运算符分配空间后,要判断指针的值是否为0。若为0,表示动态分配内存失败。 (3)定义一个指针,动态分配数组时,不能对数组进行初始化。 (4)当new运算符计算的指针类型与赋值运算符左操作数类型不一致时,必须进行强制类型装换。 (5)用new运算符分配的内存空间,该指针不能随意指向别的空间;否则,当指针已不再指向用new运算符分配的内存空间时,delete会出错。 (6)不需要时一定要及时归还给操作系统,让操作系统能够分配给其他需要内存的指针。 8.7 引用和其他类型的指针 8.7.1 引用类型变量的说明和使用 8.7.2 函数的引用传递 8.7.3 const类型变量 8.7.4 void型指针 8.7.1 引用类型变量的说明和使用 在C++中引入引用类型的主要目的是为了在函数的参数 传递时提供方便。 引用类型主要用作函数的参数或用作函数的返回值类型。 定义一个引用类型变量的一般格式为: 类型 引用变量名=变量名 int a; int aa=a; 定义了一个引用类型的变量aa,它是变量a的别名。 例8-28 引用类型变量的使用示例 8.7.2 函数的引用传递 1. 引用作为函数的参数 引用可以作为函数的参数,建立函数参数的引用传递方 式。传递引用实际上传递的是变量的地址,这一点与指针是 一样的,但是这种传递方式避免了传递大量数据带来的额外 空间开销,从而节省大量存储空间,减少了程序运行的时间。 2. 函数的返回值为引用类型 当函数的返回值为引用类型时,它的返回值一定是某一 个变量的别名。 例8-29 函数的引用传递 例8-30 函数的返回值为引用类型 8.7.3 const类型变量 1. 定义const型常量 const int DeadLine=365; 用const定义的标识符常量时,一定要对其初始化。 2. const型指针 const是一个左结合的类型修饰符,用于指针的有以下几种情况。 (1)将const放在指针变量的类型的前面: const?int *A; 表示指针变量A可变,指针所指向的数据*A不可变。 (2)将const放在指针变量的*的后面: int *const A; 表示指针A不可变,但指针变量所指向的数据*A可变,在定义时必须赋初 值。 (3)将一个const放在指针变量的类型的前面,将另一个const放在指针变 量的*的后面: const?int * const A;// 表示指针变量所指向的值是一个常量, 即指针A可变,指针所指向的数据也是一个常量,*A也不可变。在定义时 必须赋初值。 例8-31 const型指针示例之一 8.7.4 void型指针 说明void型指针的语法格式为: void *指针变量; 其中,“指针变量”可指向任何类型的数据,可将任何地址 赋给指针变量。 实际使用void型指针时,只有通过强制类型转换才能使 void型指针得到具体变量的值。在没有转换前,void型指针 不能进行指针的算术运算。 例8-33 void型指针使用错误的示例 例8-34 强制类型转换后使用void型指针示例 8.8 简 单 链 表 8.8.1 链表概述 8.8.2 建立链表 8.8.3 链表的输出 8.
您可能关注的文档
- 第7章电力电子备图的阅读与简化.doc
- 第7章:电磁兼技术与干扰抑制技术基础.ppt
- 第7讲 教案写之基本要素与环节-2017年教师资格培训—学科专业素质(郭孔生主讲).ppt
- 第7讲(tcpp).ppt
- 第7课 压延机要零部件1.ppt
- 第8,9,10元教案.doc
- 第8章 JS 2.4技术.ppt
- 第8章 人居境.doc
- 第8章 审计样.ppt
- 第8章 对策.ppt
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
最近下载
- 文献综述中小企业成本控制研究.docx VIP
- (2025春新版本)人教版七年级历史下册全册教案.pdf
- 北京市一零一中学2023-2024学年七年级下学期期中考试英语试卷(含答案).pdf
- 物业管理服务报价表完整优秀版 .pdf VIP
- 文献综述--中小企业成本控制的研究.doc VIP
- 莒县鸿瑞矿业有限公司新型节能环保型石灰窑项目(三期)竣工环境保护验收监测报告.docx VIP
- 第9课 近代西方的法律与教化 教案-统编版(2019)高中历史选择性必修1国家制度与社会治理.pdf
- ZOOM声乐乐器L-12 快速入门 (Chinese)说明书用户手册.pdf
- 基于单片机的宠物喂养系统的设计与实现.docx
- 中小学(三阶魔方的复原)校本教材.doc VIP
文档评论(0)