我正在学习 C 语言,但在理解内存分配和内存地址方案方面存在问题。
- 我有 2 个整数,第一个的地址是 22fd58,第二个的地址是 22fd60。这就是我陷入困境的地方。一个整数是 4 个字节长,因此如果第一个整数从 22fd58 开始,则第二个整数必须从 22fd5c 开始。如果一个地址包含一个字节。
那么我的逻辑漏洞在哪里?我正在使用 64 位系统。
答案1
嘿,它们是十六进制值!:-) 0x22fd58 和 0x22fd60 之间有 8 字节差异!:-) 不是 2!:-)
从内存地址我可以看出,您可能正在使用 Windows。64 位 Windows 上的 Visual C 使用 8 字节整数,因此一切都按其必须的方式进行。