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;

因為指向數組的指針指向數組的第一個元素。