将数组参数传递给函数

时间:2013-06-27 20:58:32

标签: c argument-passing function-parameter

调用函数

int sum_array(int array[], int arr_length)
{ 
   int sum = 0;  
   while(--arr_length >= 0)
      sum += array[arr_length];
   return sum;
}
主要功能

中的

 int main()
{
    int b[10];
    ...
    total = sum_array(b,10);
    ...
}

为什么将参数b而不是b[]作为sum_array(b[],10)传递? 注意:我不知道指针。

3 个答案:

答案 0 :(得分:2)

在C中,数组作为指针传递给第一个元素。 b类型是数组。

传递b时,实际上是将指针传递给数组的第一个元素。

答案 1 :(得分:1)

  • 为什么传递参数b而不是b []作为sum_array(b [],10)

简答:因为b[]语法无效。

下面

int b[10];

声明变量bint [10]是变量的类型。

由于函数接受标识符作为参数而不是类型,因此应将标识符传递给函数。标识符为b

  • 注意:我不知道指针。

它与指针无关。

答案 2 :(得分:0)

该函数期望指向int数组的指针,因此您需要将指针传递给数组的开头。 b[10]指向十元素数组的第十一(!)索引。