关于c指针&物理地址
请我在c里面的变量的地址是真实的物理内存中的地址么?还是线性地址呀
在windows中输出一个变量的地址,几乎每次都是一样的(还没发现不一样)
但是在linux里面每执行一次都不一样,请高手指点啊
?????????????????
首先我不是高手,其次未必只有高手才能回答这个问题。
是真实的物理地址。
这个书上写得很明白。C在什么时候给变量分配内存,以及什么样变量 (auto,static等)分配在内存什么区域,以及它们的生存期是什么样,一般的书上都有较详细的介绍(当然也有例外),请你仔细看书。
windows下变量地址始终一样。是编译器造成的,windows系统没有集成编译器,也就是说编译器不是windows系统的一不份,你安装在windows下的编译器是运行在windows的虚拟机平台上的。
gcc或cc是linux/unix内核的一部分,用他们编译一次就会产生一个进程,所以系统会把变量分配在不同的内存区域。