交换两个整数的方法比较

来源:互联网 发布:红黑树c语言 编辑:程序博客网 时间:2024/05/18 00:38

#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