在编写代码时,我声明了以下内容:
const int a = 4;
“a”是编译器不允许我更改的变量吗?还是我需要 static const int a = 4?
谢谢!
最佳答案
当您使用 const int a = 4;
定义 a
时,您不应更改 a
,但是不需要编译器来阻止您这样做。如果您尝试直接修改 a
,编译器应该会生成一条诊断消息,如 a = 5;
,但您可以通过其他方式尝试修改 a
编译器不一定会捕获,例如 * (int *) &a = 5;
。如果这样做,C 标准不会定义结果行为。将 static
添加到定义中不会改变这一点。
关于c - 声明存储类的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16324512/