*作者:张栋
*完成时间:2015年9月11日
*问题描述:三种函数参数的传递方法:传值,传地址及引用
*程序代码1:
#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;
}
*运行结果:
*知识点总结与心得:
此方法,无法完成任务,因为值传递时单向的,参数改变之后,是无法发回传到实参的,a和b并未改变。
*程序代码2:
void myswap1(int *p1,int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
int main()
{
int a,b;
cout<<"请输入待交换的两个整数"<<endl;
cin>>a>>b;
myswap1(&a,&b);
cout<<a<<" "<<b<<endl;
return 0;
}
*运行结果:*程序代码3:
#include<iostream>
using namespace std;
void myswap2(int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
cout<<"请输入待交换的两个整数"<<endl;
cin>>a>>b;
myswap2(a,b);
cout<<a<<" "<<b<<endl;
return 0;
}
*运行结果:
*知识点总结与心得:
程序2和3可以完成任务,程序2 是地址的传递,地址所指向的a和b发生了交换,其值自然发生了改变。程序3是引用,形参就是a和b的一个“别名”,形参改变就是a和b的改变,通过这次博文,是自己更加熟练地掌握了这三种传递方法的使用,巩固了所学习的只知识。