/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: x.cpp
* 作者:李蒙
* 完成日期: 2012年 12月 23 日
* 版本号: v1.0
* 输入描述:
* 问题描述:
* 程序输出:
*/
#include <iostream>
using namespace std;
void jiaohuan(int x, int y);
int main(void)
{
int a,b;
cin>>a>>b;
if (a<b)
jiaohuan(a,b);
cout<<"a,b="<<a<<","<<b<<endl;
return 0;
}
void jiaohuan(int x, int y)
{
int t;
t=x;
x=y;
y=t;
}
描述:此程序没有实现交换,因为实参和形参被分别分配了储存空间,所以实参赋值给形参,
交换后,自定义函数结束,则形参储存空间释放,而实参并不改变。
#include <iostream>
using namespace std;
void jiaohuan(int *x, int *y);
int main(void)
{
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;
}
描述:此程序实现了交换,因为实参和形参指向的是同一个内存空间,
所以当形参的值改变时,实参的值也随之改变。
#include <iostream>
using namespace std;
void jiaohuan(int &x, int &y);
int main(void)
{
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;
}
描述:此程序实现了改变,因为实参和形参所占的内存地址相同,
所以形参的值改变,实参的值也随之改变了