先热身一下:
#include <iostream>
using namespace std;
void fun(int &x)
{
x = 6;
}
int main()
{
int a = 1;
fun(a); // 改变了a这个空间中的值
cout << a << endl;
return 1;
}
再看:
#include <iostream>
using namespace std;
int g = 10;
void fun(int* &x)
{
x = &g;
}
int main()
{
int a = 1;
int *p = &a;
fun(p); // 改变了p这个空间中的值(而不是p指向的空间中的值), 也就是改变了p的指向
cout << *p << endl; // 10
cout << a << endl; // 1
return 1;
}
也就是说, 指针引用, 指针就是一个完全同名的指针, 是一个东东。