C++中传值调用参数和引用调用参数具体的区别?

不是定义形式上的区别
2024-11-13 11:44:25
推荐回答(5个)
回答(1):

我的理解主要是操作对象的问题

传值:
函数调用入口参数时,一般都会创建副本或者调用类对象的拷贝构造函数,所以操作结束后入参的值没有变化,变化的只是副本

引用:
则是直接操作原来的对象,不会建立副本,对该对象做的操作,会直接影响到原来传入的变量或者对象

引用会给程序带来不安全的因素,除非必要时,很少会用到引用

回答(2):

panelwork说的区别是对的,但最后一句话我不赞同,引用传递实际上是经常用的,比如C++里面自己定义类时,拷贝构造函数必然要用引用传递.或者当比较大的类作为函数参数时,一般也用引用传递,但为了防止误操作,可以加const

回答(3):

简单的说,传引用的参数,可以改变调用该函数中时传入的变量的值(就像传地址),传值则不可以改变调用时传入的变量的值.

回答(4):

C++传值调用需要创建一个实参副本,所以要重新开辟一块内存,进行赋值拷贝动作。
引用传参,因为引用是变量的别名,所以不需要进行重新分配内存,重新赋值,可以节约系统资源。

回答(5):

/C++中传值调用参数和引用调用参数具体的区别?
#include
int max(int a,int b)
{ if(a>b)
return a;
else
return b;
}
void ma(int &a,int &b)
{
if(a>b)
cout< else
cout<}

int main()
{ int x=5,y=7;
int &i=x; //表示i是x别名,也就是存贮在相同单元里
int &j=y; //同理

cout<
ma(i,j);
cout<
return 0;
}