c - 在 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
解决方案
推荐阅读
- mysql - 基于 GTID 的复制正在尝试重新执行已转储到 mysql 上的内容
- alfresco - 如何在 Alfresco(Java 代码)中获取当前登录名和密码?
- clojure - 无法在 'lein new figwheel foo -- --reagent' 中编译
- flutter - 如何创建唯一代码以邀请新用户加入移动应用程序中的群组
- assembly - 在 MIPS 架构中如何“立即”工作?
- c# - 在 C# 的 gridview 中检查何时已批准复选框
- r - 由 sjPlot 包中的 plot_model() 函数生成的奇数比率图对于 R 中的绘图窗口来说太大了
- gcc - 将 OpenEXR 与 Bazel 一起使用?
- python - python - 如何从python中的pandas数据框中打印滚动窗口方程过程?
- angular - 使用“dotnet new angular”创建的 Angular 应用程序的调试在 VSCode 中不起作用