在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
在 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