体会函数参数传递
/** 程序的版权和版本声明部分* 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;}描述:此程序实现了改变,因为实参和形参所占的内存地址相同,所以形参的值改变,实参的值也随之改变了