我是计算机科学的初学者,我开始学习C语言。(所以,如果我的问题没有任何意义的话,我首先要道歉)我在“指针”一章中遇到了一个疑问。
我在想,当我们声明一个变量时,让我们假设一个整数变量i。
内存分配给RAM中的变量。在我的书中,没有写任何关于计算机如何选择要分配给变量的内存地址的东西。我这么问是因为,我想一台电脑有8GB内存和32位处理器。
我了解到32位处理器由32位寄存器组成,它允许处理器最多访问内存的4GB。
那么,在那台计算机中,当我们声明整数变量i时,计算机会分配一个地址为32位处理器无法访问的内存空间吗?
如果发生这种情况,如果我想用操作符的地址打印i的地址,屏幕上会显示什么?
发布于 2021-06-28 06:40:12
一台具有8GB内存的计算机将有一个64位处理器。
许多64位CPU仍然可以运行32位程序,在这种情况下,两者都使用4GB。您将看到地址&i是程序内存中的32位偏移量。但是,即使您确实为64位进行了编译,您仍然可以在程序中看到64位偏移-操作系统将指示CPU如何使用不同的内存部分。
https://stackoverflow.com/questions/68158560
复制相似问题