求助 *&q和q的含义 谢谢
int *&q=p; 此时*&q和q 的含义,输出的为什么是同一个“地址”
回复 楼主 datoushan
#include <fstream.h>#include <assert.h>
main(int argc,char* argv[])
{
int a=7;
int *p=&a;
int *&q=p;
cout<<p<<endl;
cout<<q<<endl;
cout<<*q<<endl;
cout<<&q<<endl;
cout<<*&q<<endl;
}
/*
结果:
0x0012FF7C
0x0012FF7C
7
0x0012FF78
0x0012FF7C
Press any key to continue
从结果看到p和q都是指向a,也就是p中的内存保存了a的地址,
指针q本省也要有内存空间,&q即指针q的地址;*&q呢,就是
取就是去q的地址保存的内容,q地址保存的内容就是a的地址,
所以*&q=q。