读书人

指针的引用当做函数参数的有关问题

发布时间: 2013-03-22 09:49:50 作者: rapoo

指针的引用当做函数参数的问题
#include <iostream>
using namespace std;

void print(int p, int q)
{
cout<<p<<" "<<q<<endl;
}
void set(int* &p,int *q)
{
*p=100;
*q=200;
}
int main()
{
int a=10,b=20;
int *pa,*pb;

pa = &a;
pb = &b;

cout<<&a<<" "<<&b<<endl;
print(a,b);
cout<<pa<<" "<<pb<<endl;
set(pa,pb);
print(a,b);
}
打开监视窗口,
a=(int)10
b=(int)20
pa=(int*)0x00007fff5fbff85c
*pa=(int)10
pb=(int*)0x00007fff5fbff858
*pb=(int)20
q=(int*)0x00007fff5fbff858
*q=(int)200
p=(int*&)0x00007fff5fbff850
&p=(int*)0x00007fff5fbff85c
*&p=(int)100

这是变量在内存的地址,pb和q的地址好理解,就是一样的,但是pa和p的关系,我不是很理解,p是pa的引用,所以是同样的地址和数值,但是p=(int*&)0x00007fff5fbff850这块我就不懂了,为什么又分配了一块内存??求达人

[解决办法]
p=(int*&)0x00007fff5fbff850
这个是指向指针的指针了 存指针的地址

读书人网 >C++

热点推荐