说到指针,我们都知道指针上存储的是变量的地址。计算机可以通过指针上存储的地址找到变量的存储位置,并进行访问。
这个过程就像是指针所在的空间直接指向该变量内存空间,所以给它起名为指针变量。
我们都知道,当定义一个变量时 ,计算机就会为变量分配一个内存空间,变量名就是这个内存空间的名字。
当CPU进入执行指令阶段,指令的地址码可用于数据寻址,通过地址,可以找到一个内存空间,进而存入或者取出操作数。
那么在计算机底层,指令,指针,变量分别存放在哪里呢?
变量存放在主存
主存储器是计算机的实际存储空间,每个程序要被执行,都要预先被加载到主存中,所以在讨论计算机性能的时候,主存的空间大小往往成为一个重要参考因素。
内存按照人为的抽象划分,可以分为堆栈区、全局区、常量区、程序代码区。
当你在程序中用基本数据类型定义一个变量时,计算机就会在堆栈区中开辟一块内存空间。
所以变量的数据实际上就存储在堆栈区中……
指针存储在寄存器里
相比于主存储器,寄存器距离CPU更近,存取速度也更快,但是单位存储空间价格也比主存储器贵得多。
在实际的计算机中,寄存器就放在CPU芯片上,往往它数量极少,一般可分为通用寄存器和专用寄存器。
而指针里存储的数据较为特殊,是地址。所以一般会将指针存储在专用寄存器—指令指针寄存器中。
指令存放在内存的程序代码区
我们都知道,计算机在执行程序的时候,都会将程序加载进内存,而在这个过程,就会生成指令。
指令这时候就自然存放在主存中的程序代码区中。