c/c++语言中函数参数传递的三种方式

来源:互联网 发布:手工客软件 编辑:程序博客网 时间:2024/06/06 04:56
/*2015,烟台大学计算机与控制工程学院  *作者:张瑞蕾  *完成日期:2015年9月7日  *版本:v1.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,&<pre class="cpp" name="code">#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<<"调用函数后的结果是:"<<a<<" "<<b<<endl;return 0;}

b);cout<<a<<b;return 0;


法一错误;

//方法二:#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<<"调用函数后的结果是:"<<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<<"调用函数后的结果是:"<<a<<" "<<b<<endl;return 0;}

运行结果:

总结:

法一错误是因为只改变了形参,而为改变实参。法二和法三交换了实参,因此可成功。

学习心得:

对待问题要从各个角度去思考,不可局限于一角。

0 0