gpt4 book ai didi

c - 为什么 C 不支持使用 if-else 语句初始化 const 变量?

转载 作者:太空狗 更新时间:2023-10-29 17:27:16 25 4
gpt4 key购买 nike

我想使用 if-else 初始化一个 const 变量。
例如:

const int foo;
if (bar) {
foo = 1;
} else {
foo = 2;
}

在 Java 中,这是合法的代码(使用 final 而不是 const)。原因是在所有可能的结果中,变量被分配一次并且永远不会重新分配。在 C 中,这不是合法代码。为什么不能是C中的合法代码?

最佳答案

您可以通过三元运算符有条件地初始化foo变量:

const int foo = bar ? 1 : 2;

请注意,如果 foo 不是自动变量,则初始化表达式必须能够在编译时求值,否则无法编译。

关于c - 为什么 C 不支持使用 if-else 语句初始化 const 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45533373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com