专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++

关指针和引用,该怎么处理

发布时间:2011-06-28 19:16:35 文章来源:www.iduyao.cn 采编人员:星星草
关指针和引用
C/C++ code

void Func2(int *x)    //指针
{
(* x) = (* x) + 10;
}
⋯
int n = 0;
Func2(&n);
cout << “n = ” << n << endl; // n = 10 




C/C++ code

void Func3(int &x) //引用
{
x = x + 10;
}
⋯
int n = 0;
Func3(n);
cout << “n = ” << n << endl; // n = 10 






是不是使用 引用 更节约内存,但不是很灵活, 不知道我理解的对吗?

------解决方案--------------------
不是。
引用的内部实现也是指针。
所以同样的花销。
只不过一般指针有 为0的可能性。而引用一般没这个问题。
------解决方案--------------------
如果非常严格的说,也算节约了一点点内存,因为传指针的话毕竟传递了一个地址的拷贝。
其实两者都是直接基于地址的操作。
区别除了楼上所说的,还有就是引用不能进行指针运算。
------解决方案--------------------
探讨
如果非常严格的说,也算节约了一点点内存,因为传指针的话毕竟传递了一个地址的拷贝。
其实两者都是直接基于地址的操作。
区别除了楼上所说的,还有就是引用不能进行指针运算。

------解决方案--------------------
内存上差不多,但是灵活性上,还是指针更加灵活,因为引用相当于一个常量指针,指向的内容不可变化,从第一之后到消亡,始终指向同一片内存。但是指针却是可以改变的。所以灵活性上,我觉得LZ说的很正确。

------解决方案--------------------
两种语义很多地方效果都差不多吧,稍微有些区别,一个简单的例子,可以存在空指针,但空引用却是非法的。指针也是从C继承过来的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: