pointers - 我可以使用指针以什么粒度访问主内存?
问题描述
如果我将一个指针“p1”分配给一个通用地址,将该地址增加尽可能小的数量,并将该增加的地址分配给指针“p2”,那么两个指针的地址之间将有多少位内存? 答案是特定于 CPU 的吗?谢谢
解决方案
任何计算机中的地址都是字节地址。在考虑内存访问时,不可能有更小的粒度。
您可以通过递增指针来完全访问内存中的连续字节,但您必须有一个指向字节的指针(例如 C 中的 char 或 unsigned char)。
如果您的指针指向另一种实体(ints、floats、structs 等),则递增指针将引导您到下一个实体。例如,ap 是指向 int(4 字节)的指针,p++ 将增加 int 的 p 大小(4)。
如果不熟悉这些概念,请谷歌“指针算术”。
推荐阅读
- python - 将字典中的数组转换为数组列表
- python - 如何使用 Flask 提供 MP4 视频
- python - 需要动态分配文件名的指导
- node.js - Typeorm + Express on Cloud Function for Firebase
- angular - 为什么在向不同的 ASP.NET Core 端点发出大约 20 个请求后,Angular 应用程序 http 请求会挂起?
- sass - 十一:改变Sass输出层次
- android - 从 Room (Kotlin) 检索/插入多对多关系对象
- python - 我如何知道用户何时在 Discord.py 中加入了 Discord(Discord 加入日期,而不是服务器)
- javascript - TypeError:comments.map 不是 React 中的函数
- eclipse - Eclipse 2020-06 中与 m2e 的多个 SLF4J 绑定