最近学C语言指针遇到一个问题,比如说 int a = 10; 一个内存块是 1字节,那么会申请分配 4个字节 的内存空间给 a,这四块内存空间都有自己的地址,我想问的的是 -> 他是怎么确定 a 的地址是这个4地址中的哪一个呢?或者说 a 的地址C#是怎么得出来的呢?
4条回答 默认 最新
关注 其实,从你的题目来看,你已经比较熟悉C了,说刚接触是谦虚了~~~
首先,每个进行在内存中,都有所谓的数据段、代码段、栈、堆。。。。。
其次,当你定义一个int a,系统会在栈空间分配给a,并将首地址给a,例如此时地址为0x1234.。。。。
注意。。。这里是重点。。。。。首地址。。。。指针、数组只会说首地址。。。。
ok。。。。在你使用 a 的时候,系统只管0x1234 这个地址,并且知道你使用的到底是int 、还是double,这就是类型存在的意义。。。他们告诉系统从首地址连续访问多大的空间。。。例如这里,int a,那就是从0x1234 连续访问4个字节。。。。
ok。。。。至此,应该可以解惑了。。。。希望得到你的采纳~~~~本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用