如何在C语言中确定一个数组的长度

104 阅读1分钟

如何在C语言中确定一个数组的长度

C语言没有提供一个内置的方法来获取一个数组的大小。你必须在前面做一些工作。

我想先提一下最简单的方法:把数组的长度保存在一个变量中。有时候,简单的解决方案是最有效的。

而不是像这样定义数组。

int prices[5] = { 1, 2, 3, 4, 5 };

你用一个变量来表示大小。

const int SIZE = 5;
int prices[SIZE] = { 1, 2, 3, 4, 5 };

因此,如果你需要用一个循环来迭代数组,比如说,你使用那个SIZE 变量。

for (int i = 0; i < SIZE; i++) {
  printf("%u\n", prices[i]);
}

获取数组长度值的最简单的程序性方法是使用sizeof 操作符。

首先,你需要确定数组的大小。然后你需要用它除以一个元素的大小。它之所以有效,是因为数组中的每个项目都有相同的类型,因此也有相同的大小。

例子。

int prices[5] = { 1, 2, 3, 4, 5 };

int size = sizeof prices / sizeof prices[0];

printf("%u", size); /* 5 */

不使用:

int size = sizeof prices / sizeof prices[0];

你也可以使用:

int size = sizeof prices / sizeof *prices;

因为字符串的指针指向字符串中的第一个项目。