c++中的指针的解析

c++中的指针的解析

ID:22378693

大小:60.00 KB

页数:8页

时间:2018-10-28

c++中的指针的解析_第1页
c++中的指针的解析_第2页
c++中的指针的解析_第3页
c++中的指针的解析_第4页
c++中的指针的解析_第5页
资源描述:

《c++中的指针的解析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C++中的指针的解析摘要:指针是C++语言中最难掌握的概念之一,错误地使用指针所带来的后果往往是很严重的,有时甚至会导致系统崩溃。因此,正确使用指针是C++语言学习的重点和难点。  关键字:C++指针地址解析    计算机内存是由二进制位组成的,为了便于访问和管理,每8位组成一个字节,一个字节称为一个存储单元。通常,系统对每个存储单元按期顺序进行编号,编号能惟一确定任何一个字节的位置,就像根据房间号能惟一确定任何一个房间一样,于是编号被形象地称为地址。程序所处理的每一个数据必须存放于计算机内存中才能运行,这些数据按其所属的数据类型,需要占据一定数量的

2、连续的存储单元,而这些存储单元都位于内存的某个特定位置,都有一个惟一的起始地址。  因为地址指示了字节在存储器中的位置,所以地址也被形象地称为指针。指针是一个存储单元的地址值,用来存放地址(即指针)的变量称为指针变量,常常将指针变量简称为指针。C++中的指针按照它所指向的对象可以划分为变量指针、数组指针、函数指针、对象指针、类的数据成员指针和类的成员函数指针。  一、变量的指针  1.设type代表任意一种基本说明符,则:  typex;//声明了一个type型变量x。  type*p;//声明了一个type型指针变量p,“*”表示声明的p是一个指针

3、变量,p所指向的变量的类型是type型。  p=&x;//指针变量p指向了变量x,&是地址符号,&x表示变量x的地址。只有变量x的数据类型和指针变量p所指向的变量的数据类型相同才可作此操作。  2.可声明多级指针变量,如:  type**p;//声明了一个指向type类型的二级指针变量p。  二、数组与指针  1.数组的指针  typea[3];//声明了一个具有三个type类型数据的数组。  在这里a有两个涵义:  ①作为数组名,表示数组这个整体。  ②表示这个数组在内存所占的一段连续的存储单元的起始地址,也就是这个数组中第一个元素的地址,即&a[

4、0]。  type*p;//声明了一个type型指针变量p。  p=a;//将数组的起始地址赋给指针变量,使指针变量p指向数组,相当于p=&a[0]。  2.数组指针  type(*p)[3];//声明了一个指针p,这个指针指向具有3个的type类型元素的数组。  3.指针数组  type*p[3];//声明了一个具有三个指针元素的数组,每个元素都是可以指向type类型数据的指针变量  三、函数与指针  1.返回指针值的函数  函数的返回值可以是整型、浮点型、字符型等基本类型,也可以是指针类型。如:int*f(),则函数的返回值是一个指向整型数据的指

5、针,称这个函数为返回指针值的函数。  type*(形参表)  {  ……  }//定义了一个返回指针值的函数  voidmain()  {  type*p;  p=f(实参表);//函数调用,p接收的是函数f返回的指向type类型数据的指针  ……  }  2.函数指针  函数名就是函数的入口地址,函数指针就是指向函数入口地址的指针变量,即存放函数入口地址的变量。  type(*p)(typex);//定义了一个名为p的函数指针  typef(typex)  {  ……  }//定义名为f的type函数。  p=f;//将函数f()的入口地址赋给函数

6、指针变量p,即使指针变量p指向函数f(),只能将与函数指针变量具有同类型、同参数的函数名赋给函数指针变量。  四、对象指针  设有一个类A,a和f()分别是类A公有数据成员和公有成员函数,则:  At;//声明了一个类A的对象t,则&t是对象t的地址。  A*p;//声明了一个指向类A的指针变量p。  p=&t;//将指针变量p指向了类A的对象t。  用指针p调用对象t的数据成员和成员函数的格式为:p→a;和p→f()。  五、类的成员数据指针  设t是A类的一个对象,a是A的一个非静态type型成员数据,s是A的一个静态type1型数据成员,则: 

7、 1.①A∷a的相对指针常量为&A∷a;  ②A∷s的物理指针常量为&A∷s。  2.①可以指向A类的type型非静态成员的指针p1的声明格式为:typeA∷*p1;  ②可以指向A类type型静态成员的指针p2的声明格式为:type1*p2。  3.①使p1指向A∷a的方式为:用&A∷a初始化p1或在声明了p1后向p1赋值;  ②使p2指向A∷s的方式为:用&A∷s初始化p2或在声明了p2后向p2赋值。  4.①用p1而不用a来访问t.a的格式为:t.*p1;  ②用p2而不用s来访问t.s的表达式为*p2。  六、类的成员函数指针  设t是A类的

8、一个对象,f(FL1)是A类的一个type型非静态的函数成员,g(FL2)是A类的一个type1型静态函数成

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。