我正在阅读一本教科书,说在访问数组元素时只需要一次内存访问?当它与汇编语言和堆栈相关联时,我不太明白它,假设我们声明了一个数组
ValidationError
让我们说在堆栈上,第一个数组的元素在堆栈上的地址是8(我知道它应该是十六进制0x ....为了简单起见),所以b的地址是9,c是10,所以变量arr保持值8(第一个元素的地址),而arr本身的地址是100,所以得到数组的第二个元素:
答案 0 :(得分:0)
是的,你是对的。将有两个内存访问。
但单个内存访问的教科书是什么意思,一旦你有arr的值(数组启动的内存地址),你知道偏移量,你只需要一个内存访问,不像数据结构,如链接列表,你将不得不打三个电话。
对于您的其他问题,首先将为阵列分配内存。一旦此数组的范围开始,就会发生这种情况,当它到达特定命令时,这些值将被复制到分配的地址。