如何计算数组的长度?

How can I count the length of the array?

我在做 CS50。他们讨论 函数

  #include <cs50.h>
  #include <stdio.h>

  const int array_length = 3;

  float average(int length, int array[]);

  int main(void)
  {
      int scores[array_length];
      for (int i = 0; i < array_length; i++)
      {
          scores[i] = get_int("Score: ");
      }

      printf("Average: %f\n", average(array_length, scores));
  }

  float average(int length, int array[])
  {
      int sum = 0;
      for (int i = 0; i < length; i++)
      {
          sum += array[i];
      }
      return sum / (float) length;
  }

他们在函数中声明了“length”变量。但是为什么他们不给它赋值呢? C 如何知道“长度”是 3?

当您从 main 调用 average() 函数时,您也会传递这两个值,例如 average(array_length, scores)。然后,正如原型声明的那样 float average(int length, int array[])该函数捕获这些值。

array_length --> length

scores --> array[]

并且看这里的长度是全局声明的 - const int array_length = 3;。 所以,参数length也得到了array_length的值。

你可以说,array_length = 3 = 长度。