我已经在main()中声明了一个数组,并且可以使用sizeof()找到数组的大小,这给了我正确的结果。当同一数组传递给另一个用户定义的函数时,如果我使用sizeof(),则不会得到预期的结果。 在我所附的代码中,在main()中将数组的大小设为10,但在用户定义的函数中,将数组的大小设为2。 我的问题是为什么它不显示10?还是为此有其他解决方案?
#include <stdio.h>
int array(int a[])
{
int x=sizeof(a)/sizeof(int);
printf("\n in user defined() size is %d",x);
}
int main()
{ int a[10],i,x;
for(i=0;i<4;i++)
a[i]=i+1;
x=sizeof(a)/sizeof(int);
printf("\n in main() size is %d",x);
array(a);
return 0;
}
output:
in main() size is 10
in user defined() size is 2