在数组初始化时,我们不希望将数组大小写死,后续可能会有修改,那么对于未指定大小的数组,如何计算其元素个数?
思路:已知数组名代表整个数组的物理大小,数组内单个元素代表数组的一个单元物理大小,假设数组物理空间是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'结尾符也算一个元素*