我只是想知道如何找到整数数组的元素数。 对于字符数组,我们可以循环遍历数组,直到我们到达null字符,但我怎么能为整数数组做呢?
#include <iostream.h>
void main()
{
int a[] = {1,2,3,4};
for ( k = 0 ; a[k] ; k++)
cout<<k<<endl;
}
以上代码从0到8进行计数。
- 一个心胸开阔的C ++菜鸟
答案 0 :(得分:1)
按照惯例,char数组以0结尾。这样的数组称为C风格的字符串,因为它用作字符串。
对于整数,按惯例没有终止值,您需要通过其他方式知道长度。如果它是您自己的数组,请将长度存储在变量中。如果从API接收数组,通常会有一个接收数组长度的参数,您可以使用。
答案 1 :(得分:0)
如果数组是全局变量,静态变量或自动变量(int array[10];
),则sizeof(array)/sizeof(array[0])
可以正常工作。
如果它是动态分配的数组(int* array = malloc(sizeof(int)*10);
)或作为函数参数(void f(int array[])
)传递,那么在运行时无法找到它的大小。你必须在某处存放大小。
请注意sizeof(array)/sizeof(array[0])
即使对于第二种情况也会编译得很好,但它会默默地产生错误的结果。