我想要得到一個數組的長度,比如int array[] = {1, 2, 3, 4}
。我用sizeof
來做到這一點。爲什麼sizeof(param_array)是指針的大小?
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)
功能length
返回array
指針大小?但在功能main
,它的工作原理。
而且,我應該如何修改length
函數來獲取數組的長度?
是的,我知道這是一個C++的問題,但它包含了關於C作爲以及非常有用的信息:http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in -c – chris 2012-07-23 23:47:19