关于swap(int &x,int &y)的困惑

[复制链接]
查看11 | 回复2 | 2010-12-7 11:13:46 | 显示全部楼层 |阅读模式
我已经看了相关的百度知道
但是我这个程序仍然可以实现a、b交换
求解释...
详细点,尤其是swap函数
谢谢
我用的visual C++ 2010
#include
using namespace std;
void swap(int &,int &);
void main()
{
int a(5),b(10);
swap(a,b);
cout<<"a="<<a<<",b="<<b<<endl;
system("pause");
}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}
http://zhidao.baidu.com/question/184391170.html
这个我看了,但是我只是交换了值也可以实现,大虾们可以参考哈
swap中 取x、y的地址
而后面又是交换x、y的值?。。。

回复

使用道具 举报

千问 | 2010-12-7 11:13:46 | 显示全部楼层
在参数表里用了'&',表示是“引用”相当于给给主函数里的a,b分别取了个别名x,yx和a、y和b用的是同一块内存区域。当你对x,y的内存空间操作时,也就是在对a,b内存空间操作,所以值会改变。而你给的那个网址用的是指针的方式。。这个在C语言应该学过了。
回复

使用道具 举报

千问 | 2010-12-7 11:13:46 | 显示全部楼层
你这个是C++的传引用方式,类似于C语言的传指针方式,所以效果是一样的。另,如果你使用c编译器这段代码是编译不过去的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行