c语言如何取数组元素个数?

 我来答
tattackor
2015-10-21 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:877万
展开全部

1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。
2、例如:

int data[4],length;
length=sizeof(data)/sizeof(data[0]);  //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数
printf("length of data[4]=%d", length ); //输出length of data[4]=4
White_MouseYBZ
2015-10-19 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6515万
展开全部
不能判断,因为C没有提供判断数组元素个数的功能。由于C不检查数组的边界,所以必须事先知道元素个数、所占字节数和元素类型三个要素中的两个才能确定另外一个,否则是无法判断的。比如有知道数组a[]占40个字节,又知道a[]是int型数组,那么元素个数就是40/sizeof(int)。其中sizeof(int)是用操作符sizeof来求得一个int类型所占字节数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潘达lya
2013-02-09 · TA获得超过1476个赞
知道小有建树答主
回答量:509
采纳率:0%
帮助的人:442万
展开全部
length sizeof 都行,length获得的是数组的长度,数组长度比元素个数多1(比如a[10],他的长度是11),sizeof是数组字节数,字节数是数组长度乘以元素字节数。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
holyzp
2013-02-09 · TA获得超过383个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:180万
展开全部
比如数组是int型,定义数组为int a[],则该数组的元素个数就是sizeof(a)/sizeof(int)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2013-02-09 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1592万
展开全部
貌似stdlib头文件里面的_countof()宏就可以可以做到……原理就是sizeof(a)/sizeof(a[0])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式