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