考虑以下几点:
int a[2];
cin >> a[0] >> a[1];
const int D = a[1] - a[0];
cout << D << "\n";
a[1] = 5; a[0] = 2;
cout << D << "\n";
我现在有点迷茫。为什么它为 D 打印相同的值?为什么更改数组值不会更改 D 的值? D的值在什么时间点确定并存储?
谢谢!
最佳答案
D
的值在您分配它的行中确定。它不能仅仅因为用于计算它的表达式中的值发生变化而改变,即使它没有被声明为 const
。 (很少有编程语言具有像 Excel 电子表格单元格那样工作的变量:重新计算所有内容的成本将不可预测,但意义重大。)
如果你想改变 D
的值,你必须显式地分配一个新值,编译器不会让你这样做,除非你删除 const
.
关于C++:修改 const 的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3888046/