对C++中指针的深入研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对C++中指针的深入研究.doc

  对C++中指针的深入研究 摘 要:本文对C++各种类型的指针进行了深刻全面地讨论,把各种指针的常量,变量的声明、赋值和访问都一一列出,这对利用指针开发大型软件的程序员来说无疑是一个非常有力的工具。本文还揭示了指针变量与数组名的内在关系,以及类的静态数据指针与非静态数据指针的根本区别。 关键词:指针类型、指针常量、指针变量、数组名 Abstract:All kinds of pointers in C++ are thoroughly and deeply discussed. The constant quantity,variables,the form of endomer e of number groups.He also reveals the essential distinction betber group’s name C++中的“指针”实质上是指针类型的数据,所以指针既有常量,也有变量。但是人们往往只是简单的说“指针”,没有带“常量”或“变量”二字。那么,该“指针”到底是指常量呢还是指变量呢?这个 问题 要根据它所属的那个整句才能回答。C++中的指针按照它所指向的对象可以划分为变量指针、数组指针、函数指针、对象指针、类的成员数据指针和类的成员函数指针。 一、变量指针 设type代表任意一种基本类型说明符,X是该类型的变量,则: 1、X的指针常量为X。 2、一个type型指针变量P的声明格式为:type *P; 3、使P指向X,也就是说用X向P赋值的格式为:①用X初始化;②在声明了P后向P赋值。 二、数组指针 设A是一个有3行4列个type型变量元素的一个二维数组,则: 1、A有两个意义:①表示这12个type型变量构成的整体。②表示Alt;0gt;的地址,即A=Alt;0gt;。 Alt;0gt;也有两个意义:①表示A的第一行的4个type型变量构成的整体(A中左下标为0的一行元素);②表示Alt;0gt;lt;0gt;的地址。 2、①声明一个指向type型的有3行4列个元素的二维数组的指针P的格式为:   type(*P)lt;3gt;lt;4gt;;②声明一个指向type型的有4个元素的一维数组指针P1的格式为: type(*P1)lt;4gt;;③声明一个指向type型变量的指针P2的格式为:type *P2。 3、①使P指向A的方式为:用A初始化P或在声明了P后向 P赋值;②使P1指向Alt;1gt;的方式为:用“A+1”初始化P1或在声明了P1后向P1赋值;③使P2指向Alt;2gt;lt;1gt;的方式为:用Alt;2gt;lt;1gt;初始化P2或在声明了P2后向P2赋值。 4、用 A和*来表示Alt;2gt;lt;1gt;的表达式为*(*(A+2)+1),表示Alt;0gt;lt;0gt;的表达式为**A。 5、按3,①用P和*来表示Alt;2gt;lt;1gt;的表达式为*(*(*P+2)+1);②用P1和*来表示Alt;2gt;lt;1gt; 的表达式为*(*(P1+1)+1);③用P2和*来表示Alt;0gt;lt;0gt;的表达式为:*(P-6); 用P、P1和P2来访问A的元素有很多优越性,如它们及其表达式可以进行++运算和- -运算而指针常量却办不到。 三、函数指针 设一个函数的原型为:type fun (),则: 1、 fun()的指针常量为fun 2、声明一个数据类型为type,形参表为FL的函数指针P的格式为:type (P)(FL); 3、用一个数据类型为type形参表为FL的函数指针只能指向数据类型为type形参表为FL的函数。按(1)和(2),用P指向fun()的方式为:用fun初始化P或在声明P后向P赋值。 4、用P而不用fun来调用fun()的格式为:P(和FL对应的实参表); 四、对象指针 设t是A类的一个对象,a和f( )分别是A的一个公有变量成员和公有函数成员,则: 1、t的指针常量为t; 2、声明一个指向A类的对象的指针P的格式为:A*P; 3、使P指向t的方式为:用t初始化P或者在声明了P后再向P赋值。 4、①用P而不用t来表示t. a的格式为:P-gt;a;②用P而不用t来访问f( )的格式为:P-gt; f( ); 五、类的数据成员指针 设t是A类的一个对象,a是A的一个非静态type型成员数据,s是A的一个静态type1型成员数据,则: 1、①A::a的相对指针常量为A:: a;②A::s的物理指针常量为A:: s 2、①可以指向A类的type型非静态成员的指针P1的声明格式为:type A::*P1; ②可以指向A类type型静态成员的指针P2的声明格式为:type 1*p2; 3、①使P1指向A::a的方式为:用 A:: a初始化P1

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档