一直都有点分不清传值和传址,也不知道什么叫引用,所以经常写交换函数都出错,今天就把代码贴出来,希望起码swap函数不会再出错
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 程序名: Swap.cpp
* 功 能: 举例自定义Swap函数,
以区分传值、传址与引用的区别
* 运行结果:a=4 b=3
* 结 论: 指针是变量,本身占内存,储存的是实参的地址
引用是被引用者的别名,即同一个东西,并没有新占内存
* 设 计 者:*** * 时 间: 2016-9-21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
using namespace std;
/*void Swap(int x,int y) //传值调用
{
int t=x; x=y; y=t; //仅交换形参的值
}*/
/*void Swap(int *x,int *y)
{
int *t;
t=x; x=y; y=t; //形参的值为实参的地址,仅交换形参的值而实参不变化
}*/
/*void Swap(int *x,int *y) //传址调用
{
int t=*x; *x=*y; *y=t; //通过实参的地址交换了实参的值
}*/
void Swap(int &x,int &y) //&x是引用,即x是a的别名,相当于用a在直接操作
{
int t=x; x=y; y=t;
}
int main()
{
int a(3),b(4);
Swap(a,b);
cout<<"a="<<a<<" "<<"b="<<b<<endl;
return 0;
}