您的位置:首页 > 其它

交换两个整数的方法比较

2013-10-01 21:59 162 查看
#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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: