在c99中初始化布尔数组的方法

way to initialize a boolean array in c99

在 C99 中初始化布尔数组的最佳方法是什么?

我想也许我可以用这个。

bool f[5] = {false,};

这样真的可以吗?

如果有更好的方法,请告诉我。

如果你想初始化你的数组为"all false"/"all zeros"初始值,你可以做

 bool f[5] = { false };

或者你可以做

 bool f[5] = { 0 };

"the best" 是哪种变体由您决定。这里没有明确的 "best" 方式。每一个都和另一个一样好。

这个问题很旧,但如果您在 Google 上搜索“初始化布尔数组”,它仍然是 google 上的第一个结果。作者接受的答案是完全错误的,靠运气,而不是设计。这个事实本身就值得一提。

Bugfinger 在对已接受答案的评论中指出了这一点。

您可以通过声明自己尝试: bool array[4] = { true} 并检查初始化为“0”(假)的 [1]、[2] 和 [3] - 这是正确的并且符合 C99 标准。 “所有未显式初始化的数组元素都是 zero-initialized。”

参见: https://en.cppreference.com/w/c/language/array_initialization