通过形参和返回值改变主函数的参数

来源:互联网 发布:软件导刊录用率高吗 编辑:程序博客网 时间:2024/06/15 17:32

我们知道,调用子函数可以通过形参改变实参的值(传址,归根结底是传值。)。通过子函数返回值也可以达到子函数改变主函数参数的目的。而现在将两种方式结合在一起,通过一个子函数,来实现形参改变实参和返回一个值这两个目的。例子:

#include "iostream"using namespace std;//如果头文件是iostream.h则不需要此句int Change(int *p);int Change(int b[]);void main(){int a[] = {1, 2, 3};cout<<"before change a[0] is :"<<endl;cout<<a[0]<<endl;int back;back = Change(a);//获取子函数返回值,同时通过形参改变实参的值cout<<"the func change return is :"<<endl;cout<<back<<endl;cout<<"after change a[0] is :"<<endl;cout<<a[0]<<endl;}#if 0int Change(int *p)//方法一:用指针传址{int c;c = *p;*p = *(p + 2);*(p + 2) = c;return 1;}#endifint Change(int b[])//方法二:用数组名传址(用数组名传递时,将自动转化为指针){int c;c = b[0];b[0] = b [2];b[2] = c;return 1;}

注:代码中用到调试开关,将0改为1则可以试验第一种方法。
原创粉丝点击