例如: int a; a=5; 其中的a,5以及5的地址分别怎么存储?
我更想知道a是否储存了,怎样储存的?5不是被随机分配一地址,假如它被分配了两个字节为2001-2002,那么2001就会成为他的地址,那2001又怎样储存的?
定义int a;时,编译器分配4个字节内存,并命名该4个字节的空间名字为a(即变量名),当用到变量名a时,就是在使用那4个字节的内存空间. 5是一个常数,在程序编译时存放在代码的常量区存放着它的值(就是5),当执行a=5时,程序将5这个常量拷贝到a所在的4个字节空间中,就完成了赋值操作. ======================================= a是我们对那个整形变量的4个字节取的"名字", 是我们人为给的,实际上计算机并不存储a这个名字,只是我们编程时给那4个字节内存取个名字好用.实际上程序在编译时,所有的a都转换为了那个地址空间了.编译成机器代码后,没有a这个说法了.a这个名字只存在于我们编写的代码中. 5不是被随机分配的,而总是位于程序的数据段中,可能在不同的机器上在数据段中的位置可能不一致,它的地址其实不能以我们常用到的内存地址来理解,因为牵扯到一个叫"计算机寻址方式"的问题,所以写很多都解释不清楚,你自己找本汇编语言的书来学一下吧.........
天龙开服服务端_奇迹Mu开服服务端_魔兽开服服务端_魔域开服服务端_墨香开服服务端墨香sf一条龙开服5tsf.comQQ2182506381