Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C查找静态数组大小_C_Arrays_Static - Fatal编程技术网

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:取决于您对每种情况

通过查看此阵列,我知道大小为4。如何以编程方式在C中查找此数组的大小?我不想要字节大小

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])