C语言用什么方法可以获取一个数值数组的实际长度?

比如inta[10]={1,2,3}用什么方法能获取这个数组的实际长度是3?别说用a[i]!=NULL这个方法啊,行不通的,如果有个元素是0就没办法... 比如 int a[10]={1,2,3}
用什么方法能获取这个数组的实际长度是3?
别说用a[i]!=NULL这个方法啊,行不通的,如果有个元素是0就没办法
展开
 我来答
PLigt
2011-08-06 · TA获得超过677个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:381万
展开全部
如果在本函数中,可以用sizeof(a),超出这个函数范围就没办法了,只能把长度当参数一起传出去
追问
我不是要获取10,而是要获取3
追答
那就没办法了,局部变量是在栈上定义的,当你确定它总大小为10后,其它部分为未初始化状态,其值为系统中的垃圾,所以是无法知道到底用了多少。在c语言里你就只能增加一个计数变量count来记录已使用的变量
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
但桖曼0G6548
2011-08-06 · TA获得超过110个赞
知道答主
回答量:183
采纳率:0%
帮助的人:124万
展开全部
这个数组的长度就是10。你是想知道有多少个元素被赋值了吧?
编译器不可能判断出来的,除非你知道某个元素不可能被赋值,用其做无效表示。
将数组元素初始化为这个值,然后循环查找一遍。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-06
展开全部
没别的办法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式