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