我试图理解后台声明和分配原始类型的过程.
int i;
i = 3;
对于1),在内存堆栈上,它分配一个空间用于存储名为i For 2的int类型值,它将值3分配给上面保留的空间
那里有记忆地址吗?从我的印象来看,内存地址总是与堆上的对象相关联?
更新:
关于答复:
因此,对于堆栈上的每个变量,它们都被分配了一个内存地址,就像堆上的对象一样.我对么?
但对于Java,情况并非如此?
并非总是涉及地址.如果编译器发现它们的地址从未被程序员占用,则编译器可以将变量放入寄存器中.所以你不需要任何访问主内存的权限.例如,在上面的代码中,编译器可以生成的内容可以很简单
add $2, $0, 3
将值3放入寄存器2.只要创建指针并使其指向该变量,实际上就有了一个地址.然后变量不能再在寄存器中了.