【问题标题】:Why can I pass a value to the printf C function like this? [duplicate]为什么我可以像这样将值传递给 printf C 函数? [复制]
【发布时间】:2020-03-14 15:06:33
【问题描述】:

我在 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】:

    在 C 中,a[b] 本质上会变成 *(a + b),所以如果你这样做 b[a],你会得到 *(b + a),这是一样的。这就是这段代码有效的原因。

    【讨论】:

      猜你喜欢
      • 2011-02-26
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      相关资源
      最近更新 更多