上面一篇博客的例子将传送给average()函数的数组元素使用正常的数组表示法来访问。也可以把传递给函数的数组看作指针,这篇博客介绍数组做指针运算。
使用数组时利用指针表示法,要修改函数原型和函数头,说明给第一个参数使用了指针表示法(而不是数组表示法),但这里不是必须的,可以在函数体中使用指针表示法,但第一个参数的类型仍然指定为数组。
#include <iostream>
#include <iomanip>
using namespace std;
double average(double* array,int count); //function prototype
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];
average += *array++;
}
return average/count;
}
可以看出,只要改动少许,就可以把数组用作指针,函数原型和函数头都做了修改,实际上两者都不是必须的,(上一个博客中的代码的函数原型和函数头不变,函数体用指针编写,此时程序的运行情况一样。)
#include <iostream>
#include <iomanip>
using namespace std;
double average(double array[],int count); //function prototype
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];
average += *array++;
}
return average/count;
}
![](https://i-blog.csdnimg.cn/blog_migrate/1b9213988087b6fc6b579fd69dd47d25.jpeg)