This question already has answers here:
Closed 9 months ago.
Different way of accessing array elements in C
(8个答案)
With arrays, why is it the case that a[5] == 5[a]?
(18个答案)
所以代码看起来是这样的(您可以访问这个fiddlehere (Click me)
#include <stdio.h>

int main()
{
    int a[5] = { 6, 2, 7, 3, 5 };

    for (int i = 0; i < 5; i++){
        printf("%d ", i[a]);
    }

    printf("\n");

    for (int i = 0; i < 5; i++){
        printf("%d ", a[i]);
    }

    return 0;
}

这是输出:
6 2 7 3 5
6 2 7 3 5

显然,他在索引数组时犯了一个错误,并用数组本身反转索引变量。他发现它仍然打印相同的值。
这可能是个愚蠢的问题,但我对这类案件知之甚少,这让我很想知道为什么会发生这里发生的事情。
谢谢

最佳答案

x[y]相当于*(x + y)相当于*(y + x)相当于y[x]

关于c - 数组:通过将索引变量与数组本身求逆来访问数组元素会产生相同的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54628615/

10-09 05:16