C++:修改 const 的数组值

标签 c++ arrays constants

考虑以下几点:

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/

相关文章:

c++ - OnSelChanged 只触发一次

android - 使用 Qt5 为 iOS 和 Android 创建应用程序

regex - Coldfusion 正则表达式

arrays - 数组中数组的排序算法时间复杂度?

c - 使字符串中的一个单词大写,C编程

c++ - 接收到一个字符串 "chars"并尝试使用指针计算其中有多少个是同类的

c++ - 使用 Hough 变换检测圆

c++ - ANTLR - 保持 block 不变

java - 在 Java 中不进行强制转换来表示数字

c - "const"有成本吗?