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

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

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

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++远征之离港篇
  • 参与学习       122670    人
  • 解答问题       493    个

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

进入课程

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号