用C语言解释近乎巨大的指针
根据内存模型和段,指针分为三种类型:
近指针
远指针
巨大的指针
近指针
它是一个在64Kb内存数据段范围内工作的指针。
它无法访问该数据段之外的地址。
可以使用算术运算符来增加或减少地址范围的近指针。
使用关键字Near,我们可以将任何指针设为Near指针。
语法
语法如下-
nearnear
以下语句为变量s声明了Near指针
char near *string;
示例
以下程序显示了近指针的用法。
#include输出结果int main(){ int number=50; int near* p; p=&number; printf(“%d”,sizeof(p)); return 0; }
输出如下-
2
远指针
它是一个指针,既存储偏移量,又存储与该指针不同的段地址。
它可以访问所有16个段。
远指针地址的范围是0到1MB。
当指针递增或递减时,仅偏移部分正在更改。
语法
语法如下-
farfar
以下语句为变量s声明了一个远指针
char far *s;
示例
以下程序显示了远指针的用法。
#include输出结果Int main(){ int number=50; int far *p; p=&number; printf(“%d”,sizeof number); return 0; }
输出如下-
4
巨大的指针
它是一个指针,在大小上类似于far指针,因为它们都是32位地址。
可以增加巨大的指针,而不会遇到段工作循环的麻烦。
示例
以下程序显示了巨大指针的用法。
#include输出结果Int main(){ Char huge *far *ptr; Printf(“%d%d%d”,sizeof(ptr),sizeof(*ptr),sizeof(**ptr)); Return 0; }
输出如下-
4 4 1