在c++ 单纯用 指针做参数或引用做参数,好理解。但 函数参数 带 *&,容易让人困惑。下面代码,也许可以解决你的困惑。
#include <iostream>
using namespace std;
int m=3;
int * a=&m;
void prt (int * aa)//aa是指针
{
*aa=5;
cout<<*aa<<endl;
cout<<aa<<endl;
cout<<&aa<<endl;
printf("\n");
}
void prt1 (int * & aa)//aa是引用,也就是别名
{
*aa=5;
cout<<*aa<<endl;
cout<<aa<<endl;
cout<<&aa<<endl;
printf("\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
prt(a);
prt1(a);
cout<<m<<endl;
cout<<a<<endl;
cout<<&a<<endl;
system("pause");
return 0;
}