#include"iostream"
using namespace std ;
void fun(int *& P)
{
// 分配一个int内存大小地址给a1
int *a1 = new int ;
// 更改a1地址的值
*a1=123;
// 把a1地址的值给到P指向地址的值
*P=*a1;
// 修改p指向的地址为a1
P=a1;
}
int main()
{
int a=10;
// p指向a的地址
int *p=&a;
// p的地址
cout<<p<<endl;
// p指向地址的值
cout<<*p<<endl;
// 传入p的地址和引用。
fun(p);
// 输出p的地址
cout<<p<<endl;
// 输出p指向的值。
cout<<*p<<endl;
// 删除p指向的地址。
delete p;
return 0;
}
总结:如果一个函数传入一个指针,又传入指针的引用(如:fun(int *&p),那么在函数中就会修改指针指向的地址。