首页 > 解决方案 > 在 C 语言中,如何在从 main() 传递的数组中查找用户定义函数中的数组大小

问题描述

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

标签: carrays

解决方案


推荐阅读