体会函数参数传递(第十七周上级任务)
程序1:
#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);//调用交换函数 //输出a,b的值,因为在交换函数中改变的是形参的值,未改变实参a,b的值,所以输出的还是原来的值 cout<<"a,b="<<a<<","<<b; return 0;}//交换函数的代码void jiaohuan(int x,int y){ int t; t=x; x=y; y=t;}
结果:

程序2:
#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);//调用交换函数 //因为交换函数调用的为a,b的地址值,函数可以通过改变地址值来改变实参的值,从而使a,b交换。 cout<<"a,b="<<a<<","<<b; cout<<endl; return 0;}//交换函数的代码void jiaohuan(int *x,int *y){ int t; t=*x; *x=*y; *y=t;}
结果:

程序3:
#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);//调用交换函数 //函数调用的是a,b的引用,通过在函数内交换a,b的引用来交换a,b的值。 cout<<"a,b="<<a<<","<<b; cout<<endl; return 0;}//交换函数的代码void jiaohuan(int &x,int &y){ int t; t=x; x=y; y=t;}
结果:
