如何在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;
因为字符串的指针指向字符串中的第一个项目。