【发布时间】:2020-02-13 01:58:25
【问题描述】:
我们最近在我的大学 c++ 课上学习了指针,我只是有一个技术问题,因为当我谈到指针时,我想确保我所说的有道理。
因此,指针存储变量或对象之类的内存地址。但是,当您取消引用该变量以编辑该地址处的值时,幕后是真正访问和编辑存储在该位置的 RAM 中的值,或者它是从该内存位置访问变量然后只是更改它的值.或者它是同一个?我希望这是有道理的。
换句话说,说“编辑取消引用的指针会更改该内存位置的值”或“编辑取消引用的指针会更改连接到该位置的变量”是否更有意义。还是我只是想多了,这些语句实际上是相同的,因为在该内存位置编辑值也会同时编辑变量,因为这是变量获取数据的地方?
【问题讨论】:
-
“变量的内容”是一种编程结构。这些内容“存储在内存中”,一个实现细节。它们是“同一件事”——在两个不同的抽象层次上。人们也可以谈论实现“内存”的与非门。或者变量代表的“域模型”。再次 - “不同的抽象级别”。
-
我也认为这是一个完全有效的问题。反对意见可能是因为已经可以在 SO 上找到答案,而且只要搜索得当,就可以在网络上的任何地方找到答案。示例:stackoverflow.com/questions/57483/… 和/或 stackoverflow.com/questions/4955198/…
-
请记住,C++ 编译为原始二进制代码——诸如“变量”之类的东西在运行时并不真正存在,而是只有 CPU 操作码和原始内存的无差别汤。
标签: c++ pointers dereference