学帮网 > 计算机论文 > 教育资讯

计算机论文 :对C++中指针的深入研究[1]

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/05 12:32:23 计算机论文
计算机论文 :对C++中指针的深入研究[1]计算机论文
【找论文网 - 计算机论文】
摘 要:本文对C++各种类型的指针进行了深刻全面地讨论,把各种指针的常量,变量的声明、赋值和访问都一一列出,这对利用指针开发大型软件的程序员来说无疑是一个非常有力的工具。本文还揭示了指针变量与数组名的内在关系,以及类的静态数据指针与非静态数据指针的根本区别。

关键词:指针类型、指针常量、指针变量、数组名

Abstract:All kinds of pointers in C++ are thoroughly and deeply discussed.The constant quantity,variables,the form of endowing with value and access to data are listed like a table.This is undoubtedly a useful tool to a programmer who develops big softwares.The author bring to light the relationship between the pointer variables and the name of number groups.He also reveals the essential distinction between a static pointer and non-static pointer.

Keywords:pointer type data,pointer constant quantity,pointer variable,a number 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型变量构成的整体。②表示A<0>的地址,即A=&A<0>。

A<0>也有两个意义:①表示A的第一行的4个type型变量构成的整体(A中左下标为0的一行元素);②表示A<0><0>的地址。

2、①声明一个指向type型的有3行4列个元素的二维数组的指针P的格式为:   type(*P)<3><4>;②声明一个指向type型的有4个元素的一维数组指针P1的格式为: type(*P1)<4>;③声明一个指向type型变量的指针P2的格式为:type *P2。

3、①使P指向A的方式为:用&A初始化P或在声明了P后向 P赋值;②使P1指向A<1>的方式为:用“A+1”初始化P1或在声明了P1后向P1赋值;③使P2指向A<2><1>的方式为:用&A<2><1>初始化P2或在声明了P2后向P2赋值。

4、用 A和*来表示A<2><1>的表达式为*(*(A+2)+1),表示A<0><0>的表达式为**A。

5、按3,①用P和*来表示A<2><1>的表达式为*(*(*P+2)+1);②用P1和*来表示A<2><1> 的表达式为*(*(P1+1)+1);③用P2和*来表示A<0><0>的表达式为:*(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类的计算机论文