陣列元素的數量

eiSouthBoy發表於2024-06-23

在陣列初始化時,我們不希望將陣列大小寫死,後續可能會有修改,那麼對於未指定大小的陣列,如何計算其元素個數?

思路:已知陣列名代表整個陣列的物理大小,陣列內單個元素代表陣列的一個單元物理大小,假設陣列物理空間是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'結尾符也算一個元素*

相關文章