/*
*Copyright (c)2013,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:孙玲倩
*完成日期:2013年12月17日
*版本号:v1.0
*问题描述:体会函数参数传递
*/
#include <iostream>
using namespace std;
void jiaohuan (int x,int y);
int main()
{
int a,b;
cin>>a>>b;
if (a<b)jiaohuan (a,b);
cout <<"a,b="<<a<<","<<b;
return 0;
}
void jiaohuan (int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
心得体会:无法完成交换,只是将a,b的值传给了x,y,但交换时不改变a,b的值
#include <iostream>
using namespace std;
void jiaohuan (int *x,int *y);
int main()
{
int a,b;
cin>>a>>b;
if (a<b)jiaohuan (&a,&b);
cout <<"a,b="<<a<<","<<b;
return 0;
}
void jiaohuan (int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
心得体会:可以完成交换,此程序运用了指针变量将a,b的地址值传给了x,y.所以交换时a,b的值也交换了。
#include <iostream>
using namespace std;
void jiaohuan (int &x,int &y);
int main()
{
int a,b;
cin>>a>>b;
if (a<b)jiaohuan (a,b);
cout <<"a,b="<<a<<","<<b;
return 0;
}
void jiaohuan (int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
}
心得体会:采用引用的方法,使a,b,&x,&y在同一地址,因此交换。