数组作为函数的参数的基本知识要点

1.数组元素作函数实参:

  由于实参可以是表达式,数组元素可以是表达式的组成部分,因此数组元素当然可以作为函数的实参,与用变量作实参一样,是单向传递,即“值传送”方式。

2.数组名可以做函数参数:

  a.用数组名做函数参数,应该在主调函数和被调用函数分别定义数组,例中:array是形参数组名,score是实参数组名,分别在其所在函数中定义,不能只在一方定义。

  b.实参数组与形参数组类型应一致,如不一致,结果将出错。

  c.在被调用函数中声明了形参数组的大小为10,但在实际上,指定其大小是不起任何作用的,因为C编译对形参数组大小不做检查,只是将是参数组的首地址传给形参数组,因此score[n]和array[n]指的是同一单元。

  d.形参数组也可以不指定大小,在定义数组时在数组名后面跟一个空的方括弧,有时为了在被调用函数中处理数组元素的需要,可以另设一个参数,传递需要处理的数组元素的个数。

  e.用数组名作函数实参时,不是把数组元素的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共占同一段内存单元。

float average(float array[10])
{
    int i;
    float aver,sum=array[0];
    for(i=1;i<10;i++)
         sum=sum+array[i];
    aver=sum/10;
    return(aver);
}
main()
{
    float score[10],aver;
    int i;
    printf("input 10 scores:\n");
    for(i=0;i<10;i++)
        scanf("%f\n",&score[i]);
    printf("\n");
    aver=average(score);
    printf("average score is %5.2f\n",aver);
}

3.用多维数组名作函数的参数:

  多维数组元素可以作为实参,可以用多维数组名作为实参和形参,在被调用函数中对形参数组定义时可以指定每一维的大小,也可以省略第一维的大小说明。如:int array[3][10];或int array[][10];

posted on 2011-09-22 16:20  呓语若梦半浮生  阅读(2011)  评论(0编辑  收藏  举报

导航