C语言指针地址的问题

32位的程序指针应该是占用4字节16位的就是2字节应该是这样吧..至少我用sizeof显示的就是这样..问题是我看了下8086CPU关于内存访问是段地址*16+偏移地址那... 32位的程序指针应该是占用4字节
16位的就是2字节
应该是这样吧..至少我用sizeof显示的就是这样..
问题是我看了下8086CPU关于内存访问
是段地址*16+偏移地址
那么,指针里面的究竟什么地址?
32位的是Windows的,我不知道是不是还保留以前段地址这个东西
但是,16位的程序呢?如果指针只占用2字节,那么这2字节是什么地址?
如果是偏移地址,那段地址在哪里?
展开
 我来答
tseug8271
2012-06-28 · TA获得超过1498个赞
知道小有建树答主
回答量:745
采纳率:100%
帮助的人:368万
展开全部
16 的C 一般分几种编译模式
(1) tiny: 程序和数据在一个64K字节的段内
(2) small: 独立的代码段(64KB)和独立的数据段(64KB)
(3) medium:多个代码段(1MB)和单个数据段(64KB)
(4) compack:单个代码段(64KB)和多个数据段(1MB)
(5) large:多个代码段(1MB)和多个数据段(1MB),数据指针不能跨越段边界,否则将回绕。
(6) huge: 多个代码段(1MB)和多个数据段(1MB),数据指针可以跨越段边界,不会回绕

通常我们都是用small模式,这种情况下,数据段地址固定,只用偏移地址足够了,指针式16位的,2字节
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式