0

如果我写这样的运算符:

int a=32;

我是否正确理解,整数文字32像 int number 一样存储在代码中的某处,然后,这个常量被分配给我的变量 a?

4

2 回答 2

0

CPU 指令通常具有保存文字值的形式;在这种情况下,由 生成的存储指令a = 32包含要存储的值;在其他情况下,该值存储在程序数据中的某个位置并从那里复制到变量中。

回到 FORTRAN 的旧时代,您可以将常量传递给修改它的函数,从那时起,该常量就有了新值。这不是一件好事。

于 2013-08-16T11:55:50.177 回答
0

不必要。int a实际上意味着“保持sizeof(int)堆栈上的字节可用,让我们称之为a速度,并用 32 数字填充它。

这里的=, 不是赋值(a之前不存在:它是这样创建的),而是一个初始化器。

而数字 32 的位置取决于底层处理器和相关指令。它甚至可以进入代码本身,使用类似的指令LD (DS+a), 32,其中 DS 是数据段指针,变量a的偏移a量和 32 只是数字 32 的二进制位表示。

于 2013-08-16T11:56:31.400 回答