对于初学者来说,很好的理解引用,取地址,指针是一件比较容易混淆的事,接下来我大致说下我的看法,供参考。
int a=1;
int &c=a;
int *b=&a;
int main()
{
cout<<c<<endl; //此时的c就是a,输出1
cout<<&c<<endl; //输出的是c的存储地址也就是a的地址
cout<<&a<<endl; //和cout<<&c<<endl;和上一个代码一样
cout<<*&c<<endl; //*直接取这个地址的结果,也就是输出1,也就是a也是c
cout<<b<<endl; //b是指针,指向的是a的地址,输出就是a的地址
cout<<*b<<endl; //指针指向地址里面结果,也就是输出1咯
system("pause");
}
也就是,在引用的时候 &符号就是取名字,不要想太多,在取地址的时候,&取得就是对象的地址,而指针*p就是取地址里面的内容啦。我是理解成& 和* 是一对相反作用的符号吧,一个找地址,一个找地址对应的东西,一个萝卜一个坑,希望大家理解哦。