函数中的返回数组长度

问题描述

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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...