为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Fun函数交换的是地址,却能达到交换实参的效果

fun(&x,&y)

{   int a=0;

    a=y;

   y=x;

   x=a;

   

正在回答

3 回答

void fun(int &a,int &b);
int main()
{int x=10;
int y=20;
cout<<x<<","<<y<<endl;
fun(x,y);
cout<<x<<","<<y<<endl;
}
void fun(int &a, int &b)
{
int c=0;
c=a;
a=b;
b=c;
}

视频里面讲:函数定义和原型中的a和b是形參,那么函数调用中的x和y就是实参。实参是正名,形参是引用,是别名,函数体中利用形参进行交换。形参的值发生改变,实参的值也发生改变。交换发生前,int &a=x;诸位同修道友,我理解的对吧?

1 回复 有任何疑惑可以回复我~

地址对应唯一的内部值

0 回复 有任何疑惑可以回复我~

x,y是实参的别名,而不是实参的地址,如课程所学,改变别名的值,实参的值也改变了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

为什么Fun函数交换的是地址,却能达到交换实参的效果

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信