您当前的位置: 首页 > 
  • 4浏览

    0关注

    880博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

指针和地址之间的关系是什么?

CodeAllen嵌入式编程 发布时间:2019-10-24 00:15:25 ,浏览量:4

学习交流可加

微信读者交流①群 (添加微信:coderAllen) 程序员技术QQ交流①群:736386324

**常见的一个疑问是: 归根结底, 指针就是地址, 地址就是内存中被分配的“门牌号”。 所以, 指针类型和 int类型应该是一回事吧!**

实际上, 从某种意义来看, 这种认识也不无道理。

在 C 语言前身的 B 语言中, 指针和整数是没有区别的。 此外, 虽然我们经常使用 printf()和%p 来表示指针, 实际上包括我的运行环境在内, 使用%x 也可以很好地表示地址。 对不太擅长十六进制的人来说, 通过使用%d, 也能利用十进制的方式来确认地址的内容。

很可惜, 这里说的运行环境并不具有普适性。 其实在很多的运行环境中, int 类型和指针类型的长度并不相同, 此外, 由于 Intel 8086 的功能限制, 在直到最近还被广泛使用的 MSDOS 中, 是通过将 16 位的值分成两组来表示 20 位的地址的。

8086 是分段寻址的, 具体来说是指一个物理地址由段地址( segment selector) 与偏移量( offset) 两部分组成, 长度各是 16 位。 其中段地址左移 4 位( 即乘以 16) 与偏移量相加即为物理地址

ANSI C 为我们准备了“可以指

关注
打赏
1665938897
查看更多评论
立即登录/注册

微信扫码登录

0.0396s