第17章 引用和内存管理.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
声明引用 简单地说,引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用其实是变量的另一个名字。因此,与变量同样,在使用引用前也需要对其进行声明,引用的声明语句如下: 类型标识符 引用名=目标变量名; 其中,参数说明如下。 类型标识符是指目标变量的类型。 在此不是求地址运算,而是起标识作用。 “=”后的目标变量名是引用的目标,声明引用时,必须同时对其进行初始化,即为其赋值,否则会产生编译错误。 引用的操作 声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。 引用作为函数参数 :引用在C++中引入,其中的一个重要作用就是作为函数的参数。 引用作为返回值 :引用作为函数的返回值对函数有一定的要求,它要求函数定义时要按以下格式来定义: 类型标识符 函数名(形参列表及类型说明) { 函数体 } const引用 引用也可以在前面加上const修饰符,称为const引用,用以区别普通的C++引用。 这里将const引用单独列出是由于与普通的C++引用不同。简单地说,const引用表示指向const对象的引用,而非const引用表示指向非const对象的引用。例如,下面语句定义了常量ival和const引用: const int ival =1024; //定义const常量ival const int ref1 = ival; //引用和对象都是 const 如果定义了一个非const引用,而将const对象赋给该引用,这是非法的。因为对引用的修改将改变const对象的值,而const对象是不能改变值的。 【范例17-7】const引用。该范例定义了const引用,其可以绑定不同类型的对象 指针与引用的区别 指针其实就是一个变量,和其他类型的变量是一样的,它是一个占用四字节的变量(32位机上),与其他变量的不同之处就在于它的变量值是一个内存地址,指向内存的另外一个地方。而引用则是变量的一个别名。 注意:一个指针变量可以指向NULL,表示它不指向任何变量地址,但是引用必须在声明的时候就得和一个已经存在的变量相绑定,而且这种绑定不可改变。 【范例17-8】指针与引用的区别。该范例指出了引用和指针在定义及使用上的区别 本章主要讨论了有关C++中引用和内存管理的相关内容。引用是C++引入的新语言特性,是C++常用的一个重要内容之一。本章主要就引用的概念和使用,以及引用在C++程序中的作用做了详细讲解。引用主要用于传递函数的参数和给出返回值。此外,动态内存管理也是C++的一个重要特点,其提供了标准库函数和运算符进行动态内存的分配和释放,本章将两者进行了对比,使得读者了解new/delete运算符更适合进行内存管理,最后通过一个较为详细的实例介绍了使用new/delete运算符如何动态地进行内存分配和释放。 习题 3.下列程序的执行结果为? #includeiostream.h void main(. { int n=10; int* pn=n; int rn=n; *pn++; coutn=nendl; rn++; coutn=nendl; } 1-* 融智技术学院 第17章 引用与内存管理 杨章伟 e-mail:yang505412@163.com 课程内容安排 引用 引用的操作 动态内存分配 const引用 指针与引用的区别 小结 习题 引用 引用(reference)是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。引用作为对象的另一名字,在实际程序中,引用主要用做函数的形式参数。简单来说,引用是一种复合类型(compound type),即用其他类型定义的类型,通过在变量名前添加“&”符号来定义。在引用的情况下,每一种引用类型都关联到某一其他类型。不能定义引用类型的引用,但可以定义任何其他类型的引用。 引用是C++的初学者比较容易产生迷惑的概念,引用引入了对象的一个同义词,引用只是绑定的对象的另一名字,作用在引用上的所有操作事实上都是作用在该引用绑定的对象上。 动态内存分配 动态内存分配是指在程序的运行期间可以根据实际需要随时申请内存和释放内存。实行动态内存管理可以节省内存空间,提高程序运行效率。C++中,提供了两种运算符进行动态内存管理:new和delete运算符。将new运算符与delete运算符一起使用,就可以直接进行动态内存的申请和释放。 申请动态内存 C++中,new运算符用于申请所需的内存单元,返回指定类型的一个指针,在有些参考资料中也称为

文档评论(0)

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

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

1亿VIP精品文档

相关文档