C ++ - 整数类型的数组

时间:2014-12-07 13:38:18

标签: c++ arrays

我只是想知道如何找到整数数组的元素数。 对于字符数组,我们可以循环遍历数组,直到我们到达null字符,但我怎么能为整数数组做呢?

#include <iostream.h>
void main()
{
       int a[] = {1,2,3,4};
       for ( k = 0 ; a[k] ; k++)
          cout<<k<<endl;
}

以上代码从0到8进行计数。

- 一个心胸开阔的C ++菜鸟

2 个答案:

答案 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])即使对于第二种情况也会编译得很好,但它会默默地产生错误的结果。