您的位置:首页 > 其它

指针引用作参数和指针做参数的区别????

2015-09-19 15:02 246 查看


指针引用作参数和指针做参数的区别????

2012-10-24 17:17dingba12345 | 浏览
1626 次

 网络
void f(int *p)和void f(int *&rp)有什么区别?
我知道rp不占内存空间,只是实参的别名,对rp的改变就是对实参的改变。难道指针引用和指针的区别仅仅是一个不占内存一个占内存?


分享到:



2012-10-24 17:48

【团团而立】团赛进行中,百种好礼等你拿!

提问者采纳

楼上的没说全,你都知道引用是别名,那就应该知道在函数内部可以修改rp指向的地址,以前指向的是a,你可以把他改成指向b;传指针是传入参数的一份拷贝,在函数内部修改指针指向的地址,并不会修改原实参所指向的地址。可以写一个简单的程序测试下,在函数内部修改形参所指向的地址,调用完成后,看看实参指向的地址是否改变!传指针不会改变,传引用的会!动手实验下,记得更劳靠!


提问者评价
谢谢!


评论 | 23 0





Aroconocy |来自:手机知道 | 四级 采纳率19%

擅长: C/C++ VC++


其他类似问题

2009-09-07如何理解变量,指针,引用?28

2008-01-22什么时候该用指针参数 什么时候该用引用参数19

2009-08-07c++
函数参数,指针和引用7

2009-03-12普通变量、引用变量和指针变量作函数形参的区别。6

2007-04-27请问在C++中,引用作形势参数和指针作形势参数有什么区别?

更多关于参数引用
指针的问题>>

2012-10-24 17:37网友采纳

这很好理解,别想多了。
int* 也就是一种类型而已,所以你的问题和 void f2(int p) 与 void f2(int &rp)有什么分别得到的回答是一样的。rp当然要点内存空间,所占空间是一个指针的大小。
简单的来说,比如参数是 int *ptr; 假设其内容为0x12345678,内容指向的值为5,其在内存中的地址为0x00112233;
那么调用第一个f传入的值是0x12345678,第二个传入的是0x00112233。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: