#include <iostream>
using namespace std;
void swap0(int x,int y)//形参的交换,没有变化
{int temp;
temp = x;
x = y;
y = temp;
}
void swap1(int *x,int *y)//指针传递(地址传递)形参是两个整型指针,调用的时候传入整型的地址,
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
void swap2(int &x,int &y)//引用传递,形参是两个整型的引用,调用swap时,x,y初始化为main函数中的x,y的别名,简单高效!
{
int temp;
temp = x;
x = y;
y = temp;
}
void main()
{
int x = 10, y = 20;
cout<<"swap0 before:x = "<<x<<" y = "<<y<<endl;
swap0(x,y);//传值
cout<<"swap0 after:x = "<<x<<" y = "<<y<<endl;
cout<<"swap1 before:x = "<<x<<" y = "<<y<<endl;
swap1(&x,&y);//传地址(传指针)
cout<<"swap1 after:x = "<<x<<" y = "<<y<<endl;
cout<<"swap2 before:x = "<<x<<" y = "<<y<<endl;
swap2(x,y);//(引用)
cout<<"swap2 after:x = "<<x<<" y = "<<y<<endl;
system("pause");
}
运行结果:
swap0 before:x = 10 y = 20
swap0 after:x = 10 y = 20
swap1 before:x = 10 y = 20
swap1 after:x = 20 y = 10
swap2 before:x = 20 y = 10
swap2 after:x = 10 y = 20