C言語では、関数の引数で「配列そのもの」を受け取ることができない。配列の先頭のアドレスを受け渡すことになる。 だから、配列の要素数は別途引数を用意して受け渡さなければならない。そうでないと関数内で配列の要素数を知るすべがなく、困ってしまう。 int sum_all(int length, int arr[]) { /* int sum_all(int length, int *arr) でも同じ意味になる */ int i, result = 0; for (i = 0, i < length; ++i) { result += arr[i]; } return result; }