您的位置:首页 > 其它

第十七周-(项目一(1))体会函数参数传递。

2013-12-17 16:38 190 查看
/*
02.* 程序的版权和版本声明部分
03.* Copyright (c)2013, 烟台大学计算机学院学生
04.* All rightsreserve
05.* 文件名称: array.cpp
06.* 作    者:  王洪海
07.* 完成日期:  2013年 12月 17日
08.* 版本号: v1.0
09.* 输入描述:无
10.* 问题描述:
*/
#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;
}


运行结果,如图:



这个程序,只是将ab的地址值传给了x,y。在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,又因为x,y为指针变量,所以他们在交换的时候相当于交换了a,b的值。因此,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;
}

运行结果,如图:



此程序,采用引用&x,&y与a,b在同一地址,交换时对a,b有影响!因此最终交换!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: