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

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

#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 0

int Change(int *p)	//方法一:用指针传址
{
	int c;
	c = *p;
	*p = *(p + 2);
	*(p + 2) = c;
	return 1;
}

#endif


int Change(int b[])		//方法二:用数组名传址(用数组名传递时,将自动转化为指针)
{
	int c;
	c = b[0];
	b[0] = b [2];
	b[2] = c;
	return 1;
}


注:代码中用到调试开关,将0改为1则可以试验第一种方法。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值