-1

假设我有一个名为 abc[100] 的整数数组。abc 仅在前 5 个“槽”中具有值。我如何为此编写一个 for 循环,其中循环向上直到 abc 中的最后一个值不为空?

int abc[100] = {1, 2, 3, 4, 5};
4

2 回答 2

2

在 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;
}
于 2013-10-19T15:52:23.007 回答
0

在 C++ 中,如果您声明一个数组并仅初始化前几个元素,则其余元素将为value initialize,这基本上意味着将调用“默认构造函数”。

int对于诸如值初始化之类的内置类型,将值设置为零。因此,如果您修复了数组的问题,并且仅初始化前五个元素,其余元素将被初始化为零。

于 2013-10-19T15:56:54.377 回答