2013-06-27 108 views
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)
注意:我不知道指针。

+0

因为'b'是变量的名称;括号是变量类型的一部分,不需要调用函数。 –

+0

@RobI应该('b []'是否被传递? – haccks

+0

变量'b'可以在写入函数时传递给函数 - 'sum_array(b,10)'。没有必要(它会不工作)将'b []'传递给函数 –

回答

2

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

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

+3

您必须**阅读教程。指针是非常非常基础的。 – Maroun

+0

我只有两章远离指针,但现在呢? – haccks

+0

尝试用指针编写代码,使用它..它会崩溃,你会调试,你会出汗,但最终会明白。 – Maroun

0

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

+0

对不起是一个错误!我已经编辑了我的帖子 – haccks

1
  • 为什么传递参数b和非B []作为sum_array(B [],10)

短的答案:由于b[]是无效的语法。

这里

int b[10]; 

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

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

  • 注:我不知道指针。

它与指针无关。