举个例,你的代码中有一句 int a =10; 那么,这个a必定要给其分配一个地址,比如你的编译器为其分配的地址值为 0001 ,但是装入内存运行时是不是就是实际的绝对地址 0001呢?不是,如果是因为绝对地址 0001完全有可能被其它程式占有,你的程式可能是被系统按排在从绝对地址1000开始,那么,系统在装了作业时就需要地址重定位,将0001 +1000重定位到1001,这个1001才是a的实际地址,从上你可以看到,在编译阶段编译器是完全无法确定、分配一个变量的物理地址,只能采用逻辑地址,逻辑地址转换到物理地址的过程叫地址重定位.