C++ - 整数类型的数组
C++ - Arrays of the integer type
我只是想知道如何找到整数数组的元素数量。对于字符数组,我们可以遍历数组直到达到空字符,但是对于整数数组,我该怎么做呢?
#include <iostream.h>
void main()
{
int a[] = {1,2,3,4};
for ( k = 0 ; a[k] ; k++)
cout<<k<<endl;
}
上面的代码计数从 0 到 8。
-思想开放的C++菜鸟
按照
惯例,char 数组以 0 结尾。这样的数组称为 C 样式字符串,因为它用作字符串。
对于整数,按照惯例没有终止值,您需要通过其他方式知道长度。如果是您自己的数组,请将长度存储在变量中。如果从 API 接收数组,通常会有一个参数接收数组的长度,您可以使用该参数。
如果数组是全局、静态或自动变量 ( int array[10];
),则sizeof(array)/sizeof(array[0])
工作。
如果它是一个动态分配的数组(int* array = malloc(sizeof(int)*10);
)或作为函数参数传递(void f(int array[])
),那么你在运行时找不到它的大小。您必须将大小存储在某个地方。
请注意,即使对于第二种情况,sizeof(array)/sizeof(array[0])
也可以很好地编译,但它会静默地产生错误的结果。
相关文章:
- 声明C++具有动态大小的数组类型在 Linux 中工作正常,但不能在 Windows 中工作
- 数组类型 int[n][n] 不可赋值,因为表达式必须具有常量值
- 取消引用结束指针到数组类型的一个
- 结构化绑定初始值设定项表单 { 赋值表达式 } 对于 clang 上的数组类型失败
- 如何在数组类型的模板代码中计算std::size_t
- LLVM 无法将数组类型强制转换为常量数组
- 推荐的方法在不初始化值的情况下使数组类型为 std::unique_ptr?
- 特征:从数组类型中获取标量类型是否记录?
- T D[N] 总是声明数组类型的对象吗?
- 如何在模板中推断数组类型?
- 尝试使用 Array 类的模板构造整数数组时,错误:为什么数组类型"int [5]"不可分配,
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 如何为所有非数组类型专门化模板?
- 数组类型 (C++) 的初始化
- 我预测char数组类型值只能投射指针类型
- 将数组类型更改为 Int16 会节省存储空间吗?
- 采用通用数组类型的函数
- 数组类型 'int [8]'不可分配
- 数组类型 'float [size]'不可分配
- C++。候选模板被忽略 - 无法将数组类型与自身匹配