Turbo C中的int指针不应该大小为4个字节吗?

Cer*_*111 1 c pointers turbo-c

在Turbo C编译器中,当使用sizeof()运算符时,int指针的大小显示为2个字节.现在,如果我打印一个int变量的地址,它就是一个8位的十六进制数,这使得地址的大小为32位(或4个字节).

那么,为什么Turbo编译器显示2个字节大小的指针?

prp*_*fee 6

您的程序是在小内存模型下编译的,这意味着您的整个数据空间占用的空间不超过64K.程序启动时,DS寄存器指向该数据空间,因此指针只需要16位即可引用数据空间中的任何位置.

在大中型内存模型中,数据空间可能大于64K,你会发现你的指针是32位.

请参阅Alok的评论.请参阅gcc以获取替代品.