听起来很复杂,其实按层次顺序理解就能容易,指向指针的引用:1、这是一个引用,2、这个引用引用的是一个指针。
牢记引用的实质:引用只是被引用对象/变量的别名。
测试环境:Qt, 示例代码:
int a = 1;
int b = 2;
int * temp = &a;
int *&p = temp;
p = &b;
*p = 5;
qDebug() << a << " a ";
qDebug() << b << " b ";
qDebug() << *temp << " *temp ";
qDebug() << *p << " *p ";
结果:
理解一下其实也很简单:
1、temp是一个整型指针,指向a;
2、p是一个指向整型指针的引用,其实也就是p是temp的别名;
3,p指向了b,其实也就是temp指向了b;
4、p指向的整型的值,其实也是temp指向的整型的值,也就是b改为了5。
指向指针的引用有什么用?由于对引用的操作其实也就是对被引用对象的操作,所以当传入一个指针时,可以用来实现修改实参时同时修改被传入的形参(被传入的指针)的效果。
参考文章如下,大致整理了一下,我觉得更容易理解,如果还不好理解,可以看看原文。
http://blog.csdn.net/acs713/article/details/12508049