我想得到一个数组的长度,比如说int array[] = {1, 2, 3, 4}
。我曾经sizeof
这样做过。
int length(int array[])
{
return sizeof(array) / sizeof(int);
}
int main()
{
int array[] = {1, 2, 3, 4};
printf("%d\n", length(array)); // print 1
printf("%d\n", sizeof(array) / sizeof(int)); // print 4
}
那么,为什么sizeof(array)
in 函数length
返回的指针大小为array
? 但在功能main
上,它是有效的。
而且,我应该如何修改length
函数来获取数组的长度?