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

如题所述

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-19
不能判断,因为C没有提供判断数组元素个数的功能。由于C不检查数组的边界,所以必须事先知道元素个数、所占字节数和元素类型三个要素中的两个才能确定另外一个,否则是无法判断的。比如有知道数组a[]占40个字节,又知道a[]是int型数组,那么元素个数就是40/sizeof(int)。其中sizeof(int)是用操作符sizeof来求得一个int类型所占字节数。
第2个回答  2013-02-09
length sizeof 都行,length获得的是数组的长度,数组长度比元素个数多1(比如a[10],他的长度是11),sizeof是数组字节数,字节数是数组长度乘以元素字节数。。。。。
第3个回答  2013-02-09
比如数组是int型,定义数组为int a[],则该数组的元素个数就是sizeof(a)/sizeof(int)本回答被提问者采纳
第4个回答  2013-02-09
貌似stdlib头文件里面的_countof()宏就可以可以做到……原理就是sizeof(a)/sizeof(a[0])
相似回答