c求数组长度

在main方法里写sizeof(array)/sizeof(int),得到的值为数组长度。把array当形参传入时intlen(intarray[]){returnsiz... 在main方法里写sizeof(array)/sizeof(int),得到的值为数组长度。
把array当形参传入时
int len(int array[])
{
return sizeof(array)/sizeof(int);
}
得到的值为1.
这是为什么?
请大神帮忙看看。谢谢
展开
 我来答
冷_云0月
推荐于2016-02-10 · TA获得超过173个赞
知道答主
回答量:87
采纳率:0%
帮助的人:68.4万
展开全部

如图,函数int len(int array[])会被编译器解析成int len(int *array)。

也就是说,实际传给len函数的变量array是一个指针,指针在32位编译器上是4字节,int也是4字节,所以无论怎样,len函数都会返回1。

另外,array这个词在C++中是作为关键字符的,尽量避免使用。

慎重还可靠灬宝贝f
2015-07-05 · TA获得超过12.9万个赞
知道大有可为答主
回答量:1.9万
采纳率:52%
帮助的人:2599万
展开全部
用指针试试吧。
可能size(array)就是求一个元素所占的字节
追问
形参是int *array的话
sizeof(array),不应该是4么?
追答
给一下你的代码,
sizeof(array)/sizeof(int)仔细看一下前后。array和int 不是同一个概念
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式