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

为什么定义函数时需要加&,删掉后结果两个数并没有调换,为什么必须要加&

为什么定义函数时需要加&,删掉后结果两个数并没有调换,为什么必须要加&

void fun(int a, int b)

{

int c = 0;

c = a;

a = b;

b = c;

}

http://img1.sycdn.imooc.com//5e7a1aa300011bc004120293.jpg


正在回答

3 回答

这牵扯到形参和实参的问题,带了&符号以后代表传进去的还是原来的变量 只是换了个名字而已(如果你理解的话,会知道这两个的变量地址是一样的),不带符号传进去的只是这个变量的值 变量本身并不是同一个  也就是说变量的地址不一样  所以内部进行值得交换并不会影响外部的变量

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

值传递和指针传递的区别

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

加& ,传的是 x 的地址,代表的就是x 本身,称为实参

不加&,传的是 x  的值,保存在临时变量里,称为形参。

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

慕前端2074126

自己再好好想想
2021-01-20 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么定义函数时需要加&,删掉后结果两个数并没有调换,为什么必须要加&

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