为什么第二个是对的,这个符号 & 有什么用

寻梦.. 2020-09-12 04:57:12
swap(int x, int y) { int temp =x; x = y; y = temp; } swapByRef(int &x,int &y) { int temp =x; x = y; y = temp; } void main() { int x = 1,y = 2; swap(x,y); swapByRef(x,y); }
...全文
218 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
5250 2020-09-15
  • 打赏
  • 举报
回复
&是取地址符号。
建议看一下值传递和引用传递的区别。
自信男孩 2020-09-14
  • 打赏
  • 举报
回复
swapByRef(int &x,int &y)
{
int temp =x;
x = y;
y = temp;
}


功能等价:

swapByRef(int *x,int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
whut_lcy 2020-09-12
  • 打赏
  • 举报
回复
那是C++的基本语法,引用。本质上与指针是一样的,因此可以修改参数。 在c++ 里,扩展了&的含义,除了保留了取地址之外,还有就是引用。
qybao 2020-09-12
  • 打赏
  • 举报
回复
&是引用 第二种是引用传递,函数内的变量就相当于函数外的变量(函数栈不同,但地址相同),所以函数内的改变,就等于函数外的改变 第一种是值传递,函数内的变量和函数外的变量毫无关系(函数栈不同,地址也不同),所以函数内的改变影响不了函数外的变量。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧