小编pet*_*osg的帖子

A[-1] 是否真的从 A[0] 返回内存中的前一个位置?

考虑以下代码:

int A[5] = {0,1,2,3,4};
int i=1;
int test = A[i];
Run Code Online (Sandbox Code Playgroud)

此代码生成的 MIPS 程序集将向左移动i 2 位以乘以 4,因为我们获取的是 int(4 字节)。我完全理解这一点。

现在如果我们设置

int i = -1; //or any negative number
Run Code Online (Sandbox Code Playgroud)

生产的组件实际上是相同的。但是在这里,我们将一个负数移动了 2 位,这实际上可以返回一个正数。所以,我的问题是, A[negative_number] 不会用这个负数来抵消地址,但它会产生一个有点随机的结果,对吧?

c assembly mips

1
推荐指数
1
解决办法
96
查看次数

标签 统计

assembly ×1

c ×1

mips ×1