C 传递数组给函数
void myFunction(int *param);//形式参数是一个指针
void myFunction(int param[10]);//形式参数是一个已知大小的数组
void myFunction(int param[]);//形式参数是一个未知大小的数组
从上面最后一种方式看,作为参数传递时候,数组的长度是无关紧要的,因为C不会对形式参数执行边界检查。
#include <stdio.h>
double getAverage(int arr[], int size);/* 函数声明 */
int main ()
{ int balance[5] = {1000, 2, 3, 17, 50}; /* 带有 5 个元素的整型数组 */
double avg; avg = getAverage( balance, 5 ) ;/* 传递一个指向数组的指针作为参数 */
printf( "平均值是: %f ", avg ); /* 输出返回值 */
return 0; }
double getAverage(int arr[], int size)
{int i; double avg;double sum=0;
for (i = 0; i < size; ++i)
{sum += arr[i];}
avg = sum / size;
return avg;}
注意,如果形参是二维数组,第一维的长度可以不用指定,但是第二维的长度必须指定。
方法1 第一维的长度可以不指定,但必须指定第二维的长度:void my_function(int array[][32]);
方法2 指向一个有32个元素一维数组的指针:void my_