如果我写这样的运算符:
int a=32;
我是否正确理解,整数文字32像 int number 一样存储在代码中的某处,然后,这个常量被分配给我的变量 a?
CPU 指令通常具有保存文字值的形式;在这种情况下,由 生成的存储指令a = 32
包含要存储的值;在其他情况下,该值存储在程序数据中的某个位置并从那里复制到变量中。
回到 FORTRAN 的旧时代,您可以将常量传递给修改它的函数,从那时起,该常量就有了新值。这不是一件好事。
不必要。int a
实际上意味着“保持sizeof(int)
堆栈上的字节可用,让我们称之为a
速度,并用 32 数字填充它。
这里的=
, 不是赋值(a
之前不存在:它是这样创建的),而是一个初始化器。
而数字 32 的位置取决于底层处理器和相关指令。它甚至可以进入代码本身,使用类似的指令LD (DS+a), 32
,其中 DS 是数据段指针,变量a
的偏移a
量和 32 只是数字 32 的二进制位表示。