【问题标题】:How does this array element access syntax work?这个数组元素访问语法是如何工作的?
【发布时间】:2021-02-23 05:12:37
【问题描述】:
#include <stdio.h>

int main()
{
    int a[] = {1, 2, 3};

    printf("%d", 0[a]);
    printf("\n%d", 2[a]);

    return 0;
}

输出:

1
3

我知道如何使用索引访问数组元素,但是上面的语法如何在两种情况下访问第一个值并添加前缀数字?

【问题讨论】:

标签: arrays c printf


【解决方案1】:

在 C 中,数组和指针有相似之处。当您访问数组元素array[3] 时。这相当于:

*(array + 3) // Dereferencing the 3rd index from beginning

同样,当您尝试像3[array] 一样访问它时,语句如下:

*(3 + array) // Identical to the first example

这是相同的。最后,当你想获取数组N[array]的第N个元素时,语法变为:

*(N + array)

这就是您获得预期输出的原因。

【讨论】:

    猜你喜欢
    • 2012-04-27
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多