给函数传送数组

因为数组名可以用做地址,所以也可以把数组名作为参数传递给函数。

此时,会复制数组的地址,并把它传递给被调用的函数,这样做优点如下:

1.传递数组的地址比按值传送数组更高效,因为复制大的数组很耗时间。(实际上,数组不能按值传递。

2.被调用的函数不能处理原数组地址,而是处理该数组地址的副本。,这样就可以把参数作为指针来看待,包括修改它包含的地址。

下面是个例子:计算多个数的平均值,这些数放在传送给函数的数组中。

#include <iostream>    
#include <iomanip>    
using namespace std;


double average(double array[],int count);

int main()
{
	double values[] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
	cout << endl
		<< "Average="
		<< average(values, (sizeof values) / sizeof values[0])
		<< endl;
	   return 0;
}


double average(double array[], int count)
{
	double average;
	average += *array++;
	return average;

}

自己写的上面代码,

不知道为什么是0.1.可能是指针用的不对。后来发现是因为没有for循环,只是计算了一个array[0]=1,再除以10=0.1

#include <iostream>    
#include <iomanip>    
using namespace std;


double average(double array[],int count);

int main()
{
	double values[] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
	cout << endl
		<< "Average="
		<< average(values, (sizeof values) / sizeof values[0])
		<< endl;
	   return 0;
}


double average(double array[], int count)
{
	double average=0;
	for (int i = 0; i < count; i++)
	{
		average += array[i];
	}
	
	return average/count;

}

说明:

函数average()可以用于处理任意长度的数组,从函数原型可以看出,他接受两个参数,数组和数组元素中的个数:

double average(double array[],int count);

第一个参数制定类型为double类型的数组。不能在方括号中制定数组的大小,即使指定也没有用。count表示数组中元素的个数。上面的例子将传送给average()函数的数组元素使用正常的数组表示法来访问。也可以把传递给函数的数组看作指针,下一篇博客介绍数组做指针运算。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值