为什么 c 中的指针变量可以写成 p[i](i 是整数)?[复制]

Why can a pointer variable in c be written as p[i] (i is an integer)? [duplicate]

提问人:mendax1234 提问时间:11/17/2023 最后编辑:mendax1234 更新时间:11/17/2023 访问量:78

问:

这是代码

#include <stdio.h>
int main(void){
    int a[3][3], *p, i;
    p = &a[0][0];
    for(i=0; i<9; i++) p[i]=i+1;
    printf("%d\n", a[1][2]);
    return 0;
}

在此示例中,我知道代码将打印 6。但是既然是指针变量,怎么能写成.我想这里与 并且这将指向二维数组中的元素相同。但我的问题是,如果 p 只是一个指针变量,为什么 和 相同?pp[i]p[i]*(p+i)ithp[i]*(p+i)

PS:我知道如果我们定义一个数组,可以看作是指针常量。a[10]a

编辑:我认为我的困惑在于为什么指针可以在这里建立索引。

我只是想知道为什么这种表示法在 C 中是可以接受的?

c

评论


答: 暂无答案