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