C语言,关于求数组长度的问题!

 我来答
丹泰清闫旭
2019-05-07 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:577万
展开全部
解答:第一,在main
函数中,a为一维数组,是个常指针,此时sizeof(a)就能够计算出来4*10
=
40,sizeof(int)是为4的
第二,在int
Length中,你将a作为一个地址传入该函数里,这个arr只是一个指针变量而已,它的大小为4个字节,使用sizeof(arr)时只能得到4。
这个sizeof比较奇怪,你在主函数里定义
char
*b
=
"helloworld";
如果使用sizeof(b)的话,也是算出来4,懂了吗,嘿嘿
麦翠阳禄霓
2019-08-22 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:820万
展开全部
你的Length(int
*arr)函数,传过来的arr,是数组的指针,你用
sizeof(arr)实际上就是一个指针的占用的空间大小
,32位机器上是4位,而int
也是占4位,所以就是
1
啦。所以一般在传数组的时候都要传数组的长度过去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘉胤雅抗寰
游戏玩家

2019-07-15 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:939万
展开全部
Length中的sizeof(arr)是一个整形的指针的长度,也就是一个整形的长度,所以得出的就是1啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
元琪睿实鲸
2019-10-06 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:904万
展开全部
sizeof(arr)
其中arr是指向数组a
的指针。指针占四个字节,
int也是占四个字节。
如果想结果一样
可以如下处理:
char
str[100];
strcpy(str,
arr);
len=strlen(str);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式