逻辑地址与物理地址有什么区别,打印变量的地址是指的哪一个?,是变量在内存中的地址码,物理地址书写格式是什么。
跟你举个实例你就清楚了,比如说c语言的指针,其指向的就是物理地址,直接访问数据,这也正是c指针使用不当弊端所在的关键。但是c#或者java类对象class c=new class(),本事是c引用类型,逻辑内存块很小存放在栈中,通过new(相当于指针)以后,再去指向物理地址。
逻辑地址就是相对地址,比如在1G的内存里分配1M的空间 这1M空间中的第一个字节,就算是逻辑地址
在1G内存的100M的地方开始分配1M的空间,这时 101M的第一个字节,这个就是指的物理地址,
就是相对路径和绝对路径的意思了.一个是有参照物的,一个以自己为起点
那么我们用程序打印变量在内存的位置,是逻辑地址吗,能不能用图像描述一下,谢谢
@李艳21: 取地址运算符取到的是内存绝对地址,应该是的,可能不同的编译器会有区别的,但这个你不应该去考虑。因为不管是物理地址还是逻辑地址,对你来说都是已经被隐藏区别了的
@吴瑞祥: 取地址运算符取到的是逻辑地址,不要误人子弟
@panyihua: 确实是``没读过书.这方面还是很差劲的````
什么是逻辑地址?什么是物理地址?他们之间有什么联系?
http://zhidao.baidu.com/link?url=uJ8zVtUs8ah5FAAM7u4gevW3m--_02uHpb8DXFhL4QcA6g8FnQ6lej5a9HzinsrTTMwSov_HbsaXtDQtFuXd3_
看过爸爸去哪儿吗?五位爸爸要选房,房子的地址是XX街道YY巷ZZ号,这个是物理地址,导演给房子分配了1-5的编号,这个是逻辑地址,爸爸们聊天时会说你在3号房,我在5号房,但实际回家的时候确实回到XX街道YY巷ZZ号。
打印变量地址是逻辑地址,就算是用汇编操作的也是逻辑地址,只有操作系统知道物理地址,逻辑地址跟物理地址都是一个32位整数
Linu中,fork()产生一个子进程,拷贝了一份进程,打印父子进程的同一个变量,逻辑地址一样,但物理地址不一样,这个变量不是被拷贝了一 份吗,在内存的其他地方。
@李艳21: 是的,父子进行都有自己独立的进程空间,也就是逻辑地址一样。你可能把逻辑地址一样理解为父子进程共享同一个逻辑地址空间,不对,逻辑地址一样是这样的,父进程有一个变量A,逻辑地址为1,子进程对应的变量A,逻辑地址也是1,但是他们对应的物理地址是不同的