我们来看一个简单的指向引用的指针的样例。

#include <iostream>
using namespace std;
int main(){
int x=10;
int y=20;
int &rtx=x;
//不要写成了int& *ptrx=&rtx;
//由于rtx的本质是一个int
int *ptrx=&rtx;
*ptrx=15;
ptrx=&y;
rtx=y;
cin.get(); }

依次单步运行:(注意rtx值的变化和ptrx的变化)

C++学习笔记31,指向引用的指针(3)-LMLPHP

初始化引用rtx之后,rtx指向了x,其地址和&x一致。

C++学习笔记31,指向引用的指针(3)-LMLPHP

运行int *ptrx=&rtx;之后,初始化了ptrx,也是指向x;

C++学习笔记31,指向引用的指针(3)-LMLPHP

*ptrx=15;这一句运行后的结果

C++学习笔记31,指向引用的指针(3)-LMLPHP

能够看到,改变的依然是其值,其指向依然没有改变。同一时候x的值也会随之改变。

运行ptrx=&y之后

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXE4NDQzNTIxNTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

能够看到ptrx的指向改变了,这是肯定的,可是rtx的指向并没有改变。

运行 rtx=y之后,是否指向会改变呢?答案是肯定的,不会。

C++学习笔记31,指向引用的指针(3)-LMLPHP

改变的依然是rtx所指向的值!

这就是指向引用的指针。

05-11 22:52