C查找静态数组大小
通过查看此阵列,我知道大小为4。如何以编程方式在C中查找此数组的大小?我不想要字节大小C查找静态数组大小,c,arrays,static,C,Arrays,Static,通过查看此阵列,我知道大小为4。如何以编程方式在C中查找此数组的大小?我不想要字节大小 static char* theFruit[] = { "lemon", "orange", "apple", "banana" }; 请注意,sizeof(theFruit[0])==sizeof(char*),一个常量。是的,这正是实现它的方法。这就是为什么他得到+1…:-)。但只使用数组,正如您在问题中提到的那样。不使用指针。@eat_a_lemon:取决于您对每种情况
static char* theFruit[] = {
"lemon",
"orange",
"apple",
"banana"
};
请注意,
sizeof(theFruit[0])==sizeof(char*)
,一个常量。是的,这正是实现它的方法。这就是为什么他得到+1…:-)。但只使用数组,正如您在问题中提到的那样。不使用指针。@eat_a_lemon:取决于您对每种情况的称呼:)它适用于静态数组和自动数组,而不是malloc
'd数组。请注意,数组的大小始终是第一个元素大小的倍数,因此可以保证除法有效,sizeof
只查看类型,所以它甚至适用于具有零元素的数组。我想我感到困惑的是,条目的大小是可变的,因为它们是字符串。@eat_a_lemon:条目不是字符串;它们是指向字符串的char*
s。
sizeof(theFruit) / sizeof(theFruit[0])