下载此文档

C++课件5.ppt


文档分类:幼儿/小学教育 | 页数:约29页 举报非法文档有奖
1/29
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/29 下载此文档
文档列表 文档介绍
C++程序设计基础
第一章 C++基础知识
第二章基本控制结构程序设计
第三章函数
第四章类与对象
第五章指针与数组
第六章动态内存分配
第七章继承与多态
第八章流类库和输入/输出
第五章指针与数组
5. 1 指针与地址
5. 2 this指针
5. 3 数组与指针
5. 4 多维数组与指针
5. 5 指针数组
5. 6 函数指针及其应用
3. 1 指针与地址
3. 1. 1 指针的概念
在高级语言编程中,面对的是变量名,而源程序经过编译系统处理后,每一个变量在程序执行前将分配在内存指定的位置上。程序执行中,计算机是到与变量名对应的内存地址去处理存储在其中的数据。
这种按变量的地址直接存取变量的方法称为“直接访问”方式。存储变量的内存空间的首地址称为该变量的地址。
如果将一个变量的地址放在另一个变量中,则存放地址的变量称为指针(Pointer)型变量。这时存取变量,也可以间接的由指针变量取得该变量的地址进行,这称为“间接访问”方式。
由于指针变量中的值是另一个变量的地址,因此习惯上形象地称为指针变量指向该变量。
指针变量中的值也简称为指针,所以指针就是地址。
指针类型可以按它指向的变量的类型区分。基本类型和派生类型都有对应的指针类型,包括类(class),甚至还有指向指针的指针,即二级指针。
为什么要明确指针是指向哪一种数据类型的呢?因为指针中只放变量首地址是不够的,还要知道该类型的变量占多少内存以及数据又是怎样组织的。例如,整型数占4个字节,浮点数占4个字节,字符型占1个字节,并且它们有各自不同的存储组织方式。
指针类型变量定义语句格式如下:
《存储类型》类型*变量名1《,*变量名2…》;
这里*是一个定义变量为指针的说明符,而不是指针变量的一部分。*前后可以加空格,也可不加。必须指出的是,定义时每一个指针变量都需要一个指针变量说明符。例如:
int *lp1,*lp2;
5. 1. 2 指针变量的赋值、初始化与简单应用
不能给指针变量随意赋一个数值当地址值,只能取一个已经分配了内存的变量的地址赋给指针变量。C++中有两个专门的运算符与指针有关。
“&”取地址运算符,作用于内存中一个可寻址的数据(如:变量,对象和数组元素等),操作的结果是获得该数据的地址。运算结果不可作为左值。
“*”间接引用运算符,作用于一个指针类型的变量,访问该指针所指向的内存数据。因结果是内存中可寻址的数据,所以它可以作为左值。
可以通过指向对象或结构变量的指针变量来访问其公有成员时,这时要使用运算符符“->”,即在指针变量名后加“->”,再加公有成员名就可以了。
对指向普通变量的指针变量,不能做算术、逻辑类的运算。
函数可以用指针变量作参数,但一般提倡使用引用而不提倡使用指针变量。
5. 2 this指针
同一个类可以创建很多个对象,但它们共用同一份成员函数的拷贝。既然是同一份拷贝,那么成员函数又怎么知道是取哪一个对象的成员数据呢?其实当调用一个成员函数时,系统自动产生一个隐藏的指针,这个指针称为this指针,它始终指向产生这个调用的对象,并将该指针作为一个参数自动传递给该成员函数。这就是说,成员操作符总是要使用的,只不过在对象内是隐式的,而在对象外是显式的。即在对象内省略了this指针。
5. 3 一维数组与指针
5. 3. 1 一维数组与数组元素
(1)数组是一种组合类型,它不能作为一个整体进行访问和处理,只能按元素进行个别的访问和处理。
(2)C++数组第一个元素的下标为0,而不是1,且下标表达方式是固定的。
(3)数组元素在内存中是从低地址开始顺序排列,各元素的存储单元占用内存大小相同,各元素的存储单元之间没有空隙。

C++课件5 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数29
  • 收藏数0 收藏
  • 顶次数0
  • 上传人所以所以
  • 文件大小0 KB
  • 时间2012-02-21
最近更新