C语言如何检查一个数组中元素的个数

 我来答
小菊坂胡蝶
2010-09-28 · TA获得超过202个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:143万
展开全部
只可能是静态检查:

int size = sizeof(a)/sizeof(a[0])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine李小聪
2019-07-21 · TA获得超过4420个赞
知道小有建树答主
回答量:1028
采纳率:100%
帮助的人:36.1万
展开全部
数组做为参数在C语言中是按指针变量对待的,所以对于f2()中的sizeof(m)而言,因为m参数是一个指针,所以自然返回这个指针变量的长度,它是占用了一个int型变量的空间,所以所回结果和sizeof(int)的结果相同。
在main()函数中,两个数组是静态数组变量,而不是指针指向的数组或动态分配的数组,所以用sizeof()求出的值就是整个静态数组占用的空间长度。
sizeof(指针)= 指针占的长度,一般是4;
sizeof(数组名)= 数组的长度,比如int a[10], sizeof(a) = 4 x 10=40;

还要注意一个问题,数组做函数参数的时候,是按指针传递的,
int f1(int m[]), 编译器把形参m[]视作指针名,所以出现你说的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sa65081636
2010-09-28
知道答主
回答量:39
采纳率:0%
帮助的人:15.1万
展开全部
用循环,加上计数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式