如何在C中确定数组的长度

如何在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;

作为指针指向字符串的第一个项。

免费下载我的C手册


更多clang教程: