问题描述
C如何处理数组的长度?在int array []上的main函数中使用sizeof(arr) / sizeof(int)
,我的程序将显示正确的数字。但是,当我将相同的代码移入函数时:
int lengthOf(int arr[]) {
return sizeof(arr) / sizeof(int);
}
样品输入:
int arr1 [] = {1,2,3};
int arr2 [] = {11};
int arr3 [] = {3,9,7,4,4,3};
样品输出 || 期望的输出
lengthOf(arr1)= 2 || lengthOf(arr1)= 3
lengthOf(arr2)= 2 || lengthOf(arr2)= 1
lengthOf(arr3)= 2 || lengthOf(arr3)= 6
会有人碰巧知道为什么它继续输出2吗? 这是我看到的警告: *警告:数组函数参数“ arr”上的“ sizeof”将返回“ int ”的大小[-Wsizeof-array-argument]
如果这有帮助,您是否愿意解释这意味着什么?我对指针的工作方式不太熟悉。 抱歉,我是C的新手。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)