C中的指针数组?

Spl*_*neO 6 c arrays pointers

指针是一个很难确定的主题,但是我遇到了这个片段而我无法弄清楚它是什么p[-1]:

#include <stdio.h> 
int main(void) { 
    int t[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = t; 

    p += 2; 
    p += p[-1]; 
    printf("%d",*p); 
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 9

每当你看到像a[b]C语言中的表达时,你就可以在心理上认为这种情况*(a + b)正在发生.

所以,它只是" p在现在指向的元素的内容之前".

既然pt + 2,p[-1]指的是t[2 + (-1)]ie t[1].