假设我有一个名为abc [100]的整数数组。 abc只有前5个“槽”中的值。如何为循环上升直到abc中最后一个不为空的值写入for循环?
int abc[100] = {1, 2, 3, 4, 5};
答案 0 :(得分:2)
在C ++数组中,没有数组元素为“空”的概念
这个想法根本不存在。从脑海中消除它。
每个数组元素都存在。
在C& C ++,当显式初始化数组的一部分,并且未显式初始化部分时,未指定的部分默认为零。
所以,你有效地写道:
int abc[100] = {1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0....};
如果需要,可以将值0
视为未设置值的标记。
int i;
for(i=0; abc[i] != 0; ++i)
{
cout << "[" <<i<< "] : " << abc[i] <<endl;
}
答案 1 :(得分:0)
在C ++中如果声明一个数组并仅初始化前几个元素,剩下的元素将是 value initialize ,这意味着基本上将调用“默认构造函数”。
对于内置类型,例如int
值初始化,将值设置为零。因此,如果您修复了数组的问题,并且仅初始化前五个元素,则剩余部分将初始化为零。