【发布时间】:2020-07-15 14:29:56
【问题描述】:
我很想知道“记忆”究竟代表什么。
当我编译并执行这段代码时:
#include <stdio.h>
int main(void)
{
int n = 50;
printf("%p\n", &n);
}
我们知道,我们得到一个十六进制输出:
0x7ffeee63dabc
这个十六进制地址在物理上代表什么?它是我计算机 L1 缓存的一部分吗?内存?固态硬盘?
我在哪里可以阅读更多关于此的信息,任何参考资料都会有所帮助。谢谢。
一些背景: 经过几年的休息后,我最近重新开始学习计算机科学(我在该行业中作为低代码/无代码 Web 开发人员工作),并意识到我的知识存在一些空白,我想补充一下.
在学习 C(通过 CS50x)我在 Memory 的那一周。我意识到我实际上并不知道这指的是什么记忆。该课程假设学生已经知道这一点,或者它与本课程的上下文无关(这是一门介绍课程,因此抽象对于避免陷入兔子洞是有意义的),但我很好奇,我会喜欢追着它找出答案。
【问题讨论】:
-
更好,因为它避免了UB:
printf("%p\n", (void*)&n); -
这些细节是抽象出来的,会根据你的程序运行的平台而有所不同。
标签: c memory computer-science