第一种:
#include <iostream>
using namespace std;
void myswap(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
cout<<"请输入带交换的两个整数"<<endl;
cin>>a>>b;
myswap(a,b);
cout<<"调用交换函数后的结果是:"<<endl;
cout<<a<<" "<<b<<endl;
return 0;
}
运行结果:
注释:该方法在调用myswap函数时开辟的内存空间在函数调用结束时会释放掉,因此没有起到传值的效果。
第二种:
#include <iostream>
using namespace std;
void myswap(int *p1,int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
int main()
{
int a,b;
cout<<"请输入带交换的两个整数"<<endl;
cin>>a>>b;
myswap(&a,&b);
cout<<"调用交换函数后的结果是:"<<endl;
cout<<a<<" "<<b<<endl;
return 0;
}
运行结果:
注释:此方法中,运用指针,调用函数时,将变量的地址交换,成功起到了数值的交换。
第三种:
using namespace std;
void myswap(int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
cout<<"请输入带交换的两个整数"<<endl;
cin>>a>>b;
myswap(a,b);
cout<<a<<" "<<b<<endl;
return 0;
}