所以我前一段时间遇到过这个问题并且无法解决这个问题,但它让我想知道为什么会这样。我不会在我面前提出这个问题,但我会尽力从记忆中重复这个问题。
为什么这两段代码的输出在C中完全相同?其中一个显然是错误的。
代码1:
int main()
{
int a;
int b[] = {1,2,3,4};
for(a = 0; a<4; a++)
printf("%i\n",b[a]);
return;
}
代码2:
int main()
{
int a;
int b[] = {1,2,3,4};
for(a = 0; a<4; a++)
printf("%i\n",a[b]);
return;
}
两段代码的输出是:
1
2
3
4
有人告诉我它与堆栈和内存位置有关,但解释不够清楚。任何人都可以帮助解释清楚吗?
答案 0 :(得分:3)