函数传值的三种方法

来源:互联网 发布:c语言substring 编辑:程序博客网 时间:2024/06/06 17:49

第一种:

#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;
}

运行结果:



注释:此方法中,运用指针,调用函数时,将变量的地址交换,成功起到了数值的交换。



第三种:

#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;
}

运行结果:


注释:此程序运用了引用,给需要交换的变量“另起一个名字”,起到了交换的作用。