东直门到玻璃栈道:什么叫远指针?在什么情况下需要使用远指针?远指针要如何使用?(C语言)

来源:百度文库 编辑:高校问答 时间:2024/04/28 05:15:56

近指针是16位的指针,它只表示段内的偏移地址,因而只能对64k字节数据段内地址进行存取。
如 char near *p;
p=(char near *)0xffff;
远指针是32位指针,它表示段地址:偏移地址,如定义远程指针p指向B500段的2号地址,即B500:0002,则可写作:
char far *p;
p=(char far *)0xB5000002;
因此,远指针可以进行跨段寻址,可以访问整个内存的地址。
巨指针是32位的指针,它其实是规格化的指针,其实它与远指针就差在规格化上面,远指针没有规格化,这样如果两个指针实际上指向同一个物理地址,但是它们的段地址和偏移地址不一样的化,在远程指针看来,它们仍然是不一样的。如23B0:0004和23A1:00F4都指向同一个物理地址23604,但是如果进行指针比较的话,它们两个在远程指针看来是不一样的,但是在巨指针看来却是一样的。
如果想透彻地了解的话,建议看一下微机原理或是高级C里面的相关内容,这样帮助更大些。

远指针是16bit计算机的产物,现在的32bit计算机一般都是运行在保护模式下的,所以已经不分远近指针了,他们都一样,如果想多了解一些这方面的知识,可以学学汇编