先热身一下:
- #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;
- }
也就是说, 指针引用, 指针就是一个完全同名的指针, 是一个东东。