C 语言 传递数组给函数
在 C 语言中,我们可以向一个函数传递数组作为它们的参数。
如果想在函数中传递一个一维数组作为参数,就必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。
同样地,我们也可以传递一个多维数组作为形式参数。
方法 1
形式参数是一个指针
void myFunction(int *param) { ... }
方法 2
形式参数是一个已定义大小的数组
void myFunction(int param[10]) { .... }
方法 3
形式参数是一个未定义大小的数组,和一个数组长度的整形变量
void myFunction(int param[], size_t len) { ... }
范例: 传递数组作为形参
现在,让我们来看一个范例,它把数组作为参数,同时还传递数组的长度,根据所传的参数,会返回数组中各元素的平均值
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> double get_avg(int arr[], int size); int main () { int balance[5] = {1921, 7, 29, 31, 73}; double avg; /* 传递一个指向数组的指针作为参数 */ avg = get_avg ( balance, 5 ) ; /* 输出返回值 */ printf( "平均值是: %f \n", avg ); return 0; } double get_avg(int arr[], int size) { int i; double sum; for (i = 0; i < size; ++i) { sum += arr[i]; } return sum / size; }
编译和运行上面的代码,输出结果如下
$ gcc main.c && a.out 平均值是: 412.200000