gpt4 book ai didi

c - 初始化常量变量

转载 作者:行者123 更新时间:2023-11-30 18:16:47 25 4
gpt4 key购买 nike

我们可以按如下方式初始化一个const变量吗

int var1 = 10;
const int var2 = var1;

这会在任何编译器中导致任何警告/错误吗?

最佳答案

取决于代码所在的位置。

如果它在函数内部,那么 var1var2 是自动的,那么是的,这没问题。无论如何,var2 只能通过复制 var1 来初始化,因此稍后可以修改 var1 的事实与 var2 的事实无关 不能。

如果它在文件范围内,那么 var1var2 是静态的,那么不行。文件范围内的 const 整数对象必须使用编译时已知的值进行初始化(在 C++ 中,这称为“整数常量表达式”,我忘记这是否也是确切的 C 术语)。在这种情况下,您可能会认为,由于两个定义之间没有代码,因此 var1 的值在编译时就会知道为 10,但因为类型是非常量,标准无论如何都禁止它。您可以认为这是为了避免实现需要足够智能来应用该推理并证明没有任何东西能够修改 var1:它所需要查看的只是类型,不是中间代码。

关于c - 初始化常量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6396301/

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