当函数需要返回一批相同类型的数据时,可考虑数组返回。

1.基本原理:当把整个数组作为函数的实参的时候,不同于普通变量作函数实参。对比如下:
普通变量(包括数组的单个元素):
#include
using namespace std;
int max(int a,int b); //函数声明
int main( )
{
int A,B,C;
cin>>A>>B;
C=max(A,B);
//普通变量作为函数参数,只是值传递,把一个值从实参内存空间传递到形参申请的内存空间
cout<<“两个数中较大的为:”<<C<<endl;
return 0;
}
int max(int a,int b) //函数定义
{
if(a>b)
{
return a;
}
else
{
return b;
}
}

整个数组作函数参数(以求两个一维向量相加为例):
(我们看整段代码,利用了整个数组作为函数参数的方法,实现了一个向量相加的函数。
但是,如果我们细心点,会发现,按一般变量作为函数参数的值传递方法,是没办法通过函数体中的“C[i]=A[i]+B[i]”语句实现对主调函数中的c[2]进行修改的。换句话说,在传统的值传递里,形参不能修改实参。
所以,我们可以确定,当整个数组作为函数参数时,形参和实参操作的是同一个内存空间。因此,我们要批量返回一类数据时,可以通过数组传递,借助数组接口,把被调函数的操作作用于主调函数的对应区域。)
#include
using namespace std;
void add(int A[ ],int B[ ],int n,int C[ ]);
int main( )
{
int a[2]={1,2};
int b[2]={3,4};
int c[2];
c[2]=add(a,b,2,c);
cout<<“a+b=(”;
for(int i=0;i<2;i++)
{
cout<<c[i];
}
cout<<")";
}
void add(int A[ ],int B[ ],int n,int C[ ])
//这里n的作用是,表示数组长度,以便于控制函数体中的循环次数
//而数组C则是用来接收A+B的,并且起到了联系被调函数和主调函数的作用。
{
for(int i=0;i<n;i++)
{
C[i]=A[i]+B[i];
}
return ;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值