网站大量收购独家精品文档,联系QQ:2885784924

第8章指针和引.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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.

文档评论(0)

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

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

1亿VIP精品文档

相关文档