我为什么要像这样将值传递给printf C函数? [重复]

问题描述 投票:0回答:1

我正在C语言中搜索指针,并且在给定的网站上发现了以下用法:

int main() {
    int i;
    int array[5] = {10, 20, 30, 40, 50};

    for(i = 0; i < 5; i++) {
        printf("%d\n", i[array]); /* Instead of "array[i]"" */
    }

    return 0;
}

它是如何发生的,为什么printf函数理解这一点?

c arrays printf
1个回答
1
投票

在C中,a[b]本质上将变为*(a + b),因此,如果执行b[a],则将得到相同的*(b + a)。这就是为什么此代码有效的原因。

© www.soinside.com 2019 - 2024. All rights reserved.