C++中引用做为形参的作用是什么?就是普通的不行吗?

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:57:10
就比如 重载<<的时候,为什么一定要OFTREAM &OUTPUT 一定要用形参的啊?
还有一些别的类型的形参的引用和普通的形参的什么不同?

反正我不习惯去用这个啦!!

引用是地址传值,作为引用的形参数值被修改的同时,也修改了对应实参的值。
你不用引用当然可以,只是实参的值不会随着形参被修改。
引用还有另外一个作用,声明这个变量的时候不会浪费额外的内存空间,对引用的形参的操作实际就是对实参的操作。

首先要明白 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。
当引用作为参数传入后,函数中对参数的操作,也会影响到传入变量
而且其他普通的是不会对传入的变量有任何影响,举例

int a;
int &ra=a; //定义引用ra,它是变量a的引用,即别名
ra=1; 等价于 a=1;

void SetVariant(int &xx)
{
xx = 100;
}
main()
{
int a = 1;
SetVariant(a);
cout<<a; //输出结果
}

最后输出的a是100,而不是1了

简单说,引用或指针传的形参可以在一句代码中多次调用..

而普通的只能调用一次..

引用可以看成是被引用对象的另一个名字,他不格外占用空间。效率高,却和原对象有相同的效果。传引用比传指针(你需要为指针分配空间)或原对象(你需要重新定义分配对象)不知高多少倍,效果却和指针的一样(传的也是地址)

可以修改你传进去的东西,虽然指针也可以,但是由于C的指针存在太多的问题,所以C++引入了引用这样的东西
在初学到c++的时候,你应该向十字军一样勇猛的使用引用,然后再去慢慢体会何时该使用!