ad

《C++程序开发案例课堂》_了解C++的更好途径_8.2 指针变量

admin 70 2023-11-01

【摘要】 本书摘自《C++程序开发案例课堂》一书中第8章,第2节,由刘春茂、李琪编著。

8.2 指针变量

使用指针,指针变量是必须用到的。下面就来介绍关于指针变量的概念。

指针变量是存放变量地址的变量,这个地址变量是指向一个变量在内存中的首地址的。

《C++程序开发案例课堂》_了解C++的更好途径_8.2 指针变量

8.2.1 指针变量的声明

指针变量和其他变量一样,都应遵循C++ 变量定义规则。指针定义的形式如下:

类型标识符 变量标识符;

定义存放指定类型数据地址的指针变量。

类型标识符是定义指针的基类型,给出指针数据对应存储单元所存放的数据的类型, 一 般用"指向"这个词来说明这种关系,即类型标识符给出指针所指向的数据类型,可以是简 单类型,也可以是复杂类型。用“*”表示定义的是指针变量,不是普通变量。变量标识符给 出的是指针变量名。

例如:

Int *p1,*p2,*p3;

定义指向整型数据的指针变量p1、p2、p3。

float *q1,*q2,*q3;

定义指向实型数据的指针变量q1、q2、q3。

char*r1,*r2,*r3;

定义指向字符型数据的指针变量r1、r2、r3。

在定义指针变量时, “*”表示后面的变量为指针变量。但指针变量名是 p1、 p2, 而不是*p1、*p2。 另外, 一个指针变量所指向的数据类型不能任意改变。

8.2.2 指针变量的使用

声明完指针变量后就是如何使用的问题。指针变量是代表一个变量的地址,那么怎么给 指针变量赋值呢?

对指针变量赋值,有如下几种方法。

1.用&取得普通变量的地址

通过&符号得到普通变量的地址,将地址赋值给指针变量。

2.指针之间的赋值

两个指针之间可以直接赋值,因为两个指针都是代表了内存地址,不需要使用&符号。 代码如下:

3.让指针指向数组

一个数组名就是一个数组的首地址,所以数组变量也可以直接赋值给数组,不用使用& 符号。

下面通过一个例子来说明指针的使用方法。

【例8-2】指针的使用(代码8-2.txt)。

新建名为 zztest 的C++Source File源程序。源代码如下:

【代码剖析】

这个程序,首先定义了一个int型变量 k 并赋值为100,接着定义指针变量 p, 将k 的地址赋值给指针变量 p, 输出 k 和*p 的值(用逗号分开);再直接改变 k 值为200,输出此时二者的值;然后通过指针来改变 k 值,输出此时二者的值。

图8-2 使用指针

运行结果如图8-2所示。

从结果来看,当p 指向k 以后,修改*p 的值完全等同于直接修改k 值。

8.3 指针与函数

在实际编程的过程中,指针和函数有着非常紧密的联系。下面详细介绍指针与函数的 关系。

8.3.1 指针传送到函数中

函数的指针变量作为参数传递到其他函数中,是函数指针的重要用途之一。

指针变量可以作为函数的参数而存在,即在定义一个函数时,可以定义该函数的参数为 一个指针变量。在调用该函数时,将变量地址作为实参传递到该函数中,变量的类型必须与 形参指针指向的类型一致。在函数执行过程中,实参的值也会随形参的改变而改变。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_6.3 特殊函数调用方式——递归调用
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_8.1 指针概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×