变量的本质

来源:互联网 发布:网络教育护理 编辑:程序博客网 时间:2024/05/29 07:21

变量是指其值可以变化的量。在计算机中,指令代码、数据都存储于内存中。变量也需要存储在内存中。在计算机中,每个变量都被分配了一块内存空间,在这些空间存储的就是变量的值。

在源代码中,每个变量都有变量名。实际上,编译后的目标代码里并没有变量名字,而是记录着变量在内存空间中的地址。在C语言中,通过变量名可以访问到变量的值,对变量名的访问,就是对变量值的访问。

在编译过程中,编译器会建立一张变量符号表,该表记录的数据是:变量类型、变量名、变量地址等信息。例如,编译器会建立如图所示的变量符号表:


 当源代码中需要将新值赋给变量x的时候,比如x=5678。编译器通过变量名查询变量符号表,得到变量的地址为2000,就可以把新值5678存储在地址编号为2000的内存空间中。

当源代码中需要取变量X的值的时候,编译器实际上去查询变量符号表,发现了变量x对应的内存地址是2000,变量类型是int,于是就可以从内存地址为2000的空间中取得变量的值。

变量声明

int a,b:

这是向编译器声明程序中将会用到两个整型变量,其名字为a和b。此时并不会进行真正的内存分配动作,也就是此时并没有内存地址和变量关联。

变量赋值

a=1;

第一次访问变量的时候,编译器会为变量分配内存,假如给a分配的内存空间的编号为2000,于是将数值1存储在2000所对应的内存空间中。
0 0