C 方括号内的指针?

C 方括号内的指针?,c,pointers,C,Pointers,考虑以下代码: #include <stdio.h> int main(void){ char *p="A for Apple"; char q[15]="B for Ball"; printf("x=%c y=%c\n",*(p+10)-2,*(&q[4]-2)); printf("u=%c v=%c w=%d\n",p[8],*q+8,8[p]-q[8]); return 0; } 这里的问题是确定如何评估w=4 8[p]是什么

考虑以下代码:

#include <stdio.h>
int main(void){
    char *p="A for Apple";
    char q[15]="B for Ball";
    printf("x=%c y=%c\n",*(p+10)-2,*(&q[4]-2)); 
    printf("u=%c v=%c w=%d\n",p[8],*q+8,8[p]-q[8]);
    return 0;
}
这里的问题是确定如何评估
w=4


8[p]
是什么意思?

a[x]
*(a+x)
的缩写。因此,
a[x]
相当于表达式
x[a]
。(当然,
8[p]
p[8]
也是如此;)

它的意思与
p[8]
相同。
x=c y=f  
u=p v=J
w=4