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;
因為指向數組的指針指向數組的第一個元素。