0

在调用函数时

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)
注意:我不知道指针。

4

3 回答 3

2

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

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

于 2013-06-27T21:06:52.390 回答
1
  • why passing the parameter b and not b[] as sum_array(b[],10)

Short answer: Because b[] is invalid syntax.

Here

int b[10];

variable b is declared. int [10] is type of variable.

Since functions accept identifiers as parameters, not types, you should pass identifier to function. Identifier is b.

  • NOTE: I have no knowledge of pointers.

It has nothing to do with pointers.

于 2013-06-27T21:19:06.037 回答
0

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

于 2013-06-27T21:01:30.710 回答