【发布时间】:2012-05-04 05:33:40
【问题描述】:
static char* theFruit[] = {
"lemon",
"orange",
"apple",
"banana"
};
通过查看这个数组,我知道大小是 4。如何以编程方式在 C 中找到这个数组的大小?我不想要以字节为单位的大小。
【问题讨论】:
static char* theFruit[] = {
"lemon",
"orange",
"apple",
"banana"
};
通过查看这个数组,我知道大小是 4。如何以编程方式在 C 中找到这个数组的大小?我不想要以字节为单位的大小。
【问题讨论】:
sizeof(theFruit) / sizeof(theFruit[0])
注意sizeof(theFruit[0]) == sizeof(char *),一个常量。
【讨论】:
malloc'd 数组。请注意,数组的大小始终是第一个元素大小的倍数,因此可以保证除法有效,并且sizeof 仅查看类型,因此它甚至适用于零元素的数组。
char*s 指向字符串。
请改用 const char*,因为它们将存储在只读位置。并获得数组的大小
unsigned size = sizeof(theFruit)/sizeof(*theFruit);
*theFruit 和 theFruit[0] 都是一样的。
【讨论】: