我正在尝试像这样初始化一个 bool 数组:
bool FcpNumberIsOk[MAX_FCPS]={true};
但是当我调试它时,我只看到数组的第一个元素被初始化了,其他的都是假的。怎么会这样?我在 ubuntu 10 上使用 Qt,初始化是在方法内的本地数组上完成的。
好的,谢谢您的回答。
最佳答案
你误会了。您似乎认为任何未提及的元素都将被初始化为与最后一个显式初始化值相同的值。您提到的最后一个值是 true
,因此所有其他元素也将被初始化为 true
。我曾经有过同样的信念,但我很快就了解到并非如此。
这不是它的工作原理。任何未提及的元素都会被默认初始化,对于 bool
意味着 false
。
要将所有元素设置为 true
,请尝试类似 std::fill_n
的操作:
std::fill_n(FcpNumberIsOk, MAX_FCPS, true);
关于C++数组初始化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603206/