在陣列初始化時,我們不希望將陣列大小寫死,後續可能會有修改,那麼對於未指定大小的陣列,如何計算其元素個數?
思路:已知陣列名代表整個陣列的物理大小,陣列內單個元素代表陣列的一個單元物理大小,假設陣列物理空間是100,單個元素物理空間是5,那麼該陣列一共有20個元素。
array_element_number.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char arr[] = {"hello world"};
int iarr[] = {1, 2, 3};
char *objects[] = {
"hello",
"world",
"c",
NULL};
printf("計算字元陣列的元素數量: %ld\n", sizeof(arr) / sizeof(arr[0]));
printf("計算整型陣列的元素數量: %ld\n", sizeof(iarr) / sizeof(iarr[0]));
printf("計算指標陣列的元素數量: %ld\n", sizeof(objects) / sizeof(objects[0]));
exit(EXIT_SUCCESS);
}
📌 * 注意:對於字串,'\0'結尾符也算一個元素*