6个回答
展开全部
panelwork说的区别是对的,但最后一句话我不赞同,引用传递实际上是经常用的,比如C++里面自己定义类时,拷贝构造函数必然要用引用传递.或者当比较大的类作为函数参数时,一般也用引用传递,但为了防止误操作,可以加const
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-01-14
展开全部
简单的说,传引用的参数,可以改变调用该函数中时传入的变量的值(就像传地址),传值则不可以改变调用时传入的变量的值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++传值调用需要创建一个实参副本,所以要重新开辟一块内存,进行赋值拷贝动作。
引用传参,因为引用是变量的别名,所以不需要进行重新分配内存,重新赋值,可以节约系统资源。
引用传参,因为引用是变量的别名,所以不需要进行重新分配内存,重新赋值,可以节约系统资源。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/C++中传值调用参数和引用调用参数具体的区别?
#include <iostream>
int max(int a,int b)
{ if(a>b)
return a;
else
return b;
}
void ma(int &a,int &b)
{
if(a>b)
cout<<a;
else
cout<<b;
}
int main()
{ int x=5,y=7;
int &i=x; //表示i是x别名,也就是存贮在相同单元里
int &j=y; //同理
cout<<max(x,y); //x,y值作为拷贝副本传递a和b;
ma(i,j);
cout<<x<<" "<<y;//i和j的值变化会影响到x和y;
return 0;
}
#include <iostream>
int max(int a,int b)
{ if(a>b)
return a;
else
return b;
}
void ma(int &a,int &b)
{
if(a>b)
cout<<a;
else
cout<<b;
}
int main()
{ int x=5,y=7;
int &i=x; //表示i是x别名,也就是存贮在相同单元里
int &j=y; //同理
cout<<max(x,y); //x,y值作为拷贝副本传递a和b;
ma(i,j);
cout<<x<<" "<<y;//i和j的值变化会影响到x和y;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询