C++怎样返回数组的实际长度? 例: { …… int array[10000]={1,2,3,4,6,79};// 返回数组的实际长度 ……

如题所述

定义数组时别给出元素个数
int array[ ]={1,2,3,4,6,79};
然后通过sizeof函数来确定元素个数
sizeof(array)/sizeof(int); 这就是数组的实际长度
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-01
你一旦定义了了数组,那么数组的实际长度就已经确定了。数组长度是不可变的。想知道你真正使用了多少,这个你在编程的时候应该心里有数。
如果在定义数组的时候直接初始化了,并且没有明确指出数组元素个数(其实在初始化时已经确定了),可以sizeof整个数组除以sizeof数组元素类型就得到了。
第2个回答  2011-11-01
int a[10];
sizeof(a) 就是数组所占用的字节数 也就是长度 在32位机器上是40
如果你要求的是当前数组中元素的个数,可以用
个数 = sizeof(a)/sizeof(int)
如果是 char a[10] 就是 sizeof(a)/sizeof(char)
希望对你有帮助 原作者是lyly0904
第3个回答  2011-11-09
数组长度 标准答案:
sizeof(array) / sizeof(array[0])

“实际长度” 是不是指这个就不知道了。
第4个回答  2011-11-01
int i;
i = 0;
while( 0 != a[i] )
{
i++;
}追问

这个似乎不具有普遍性吧? 如果数组中有为 0 的数据呢????

追答

如果 被 0 隔开了 要 统计非零 元素个数
例如 1 ,3, 5, 7,0,9,15,21,……

int count;
int i;
count = 0;
i = 0;
while(i<10000)
{
if( 0 != a[i] )
{
count++;
}
i++;
}
循环结束 计数器 count 的值就是 非零元素的个数

相似回答