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