C++中的引用由什么好处。、

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:56:36
书上说不会产生副本,那副本又是什么东西。

引用规避了指针的风险,对引用不管怎么赋值都是安全的
int &b = a;
int *p = a;
在程序的应用中,可能会不小心就使用p = 1;而不是*p = 1;这样的赋值语句,而前者直接改地址值的行为是很危险的,因为0x1这个地址可能存放的是重要数据,禁止读写的区域。而引用就不会有这个问题

副本就是当你使用按值传递时,编译器会自动把要传递的值存进栈,当函数结束后,栈被释放,栈里存的数据就是副本,使用引用就不会产生副本也避免了指针的危险。

就是直接把本体传过去。如果不是引用的话会先复制本体再把复制的东西传过去。

就是在传递参数时候建立的东西

比如
void test(int a)
{}

实际上,传入参数式,创建了副本
int __a

操作都是针对副本 __a,而不是参数

有利有弊。
好处楼上的都说的很清楚了。
坏处就是,对自己程序的逻辑和目的一定要清晰。
否则就有可能会改变不想改变的值