用C语言如何在用户定义的函数中查找数组大小,并从main()传递该数组

时间:2018-07-30 15:55:14

标签: c arrays

我已经在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

0 个答案:

没有答案