/* p[i]与*(p+i)有意思的事情*/
/*
int p[10]={0,1,2,3,4,5,6,7,8,9};
int i;
for(i=0;i<10;i++)
{
printf("p[%d",i);
printf("]=");
printf("%d\t",p[i]);
printf("%d\n",*(p+i));
}
*/
为什么c语言中i[p]与p[i]是等效的?
因为编译器会翻译为指针表示法后再解析,即*(i+p)和*(p+i) ,根据交换律,二者等价
/* p[i]与*(p+i)有意思的事情*/
/*
int p[10]={0,1,2,3,4,5,6,7,8,9};
int i;
for(i=0;i<10;i++)
{
printf("p[%d",i);
printf("]=");
printf("%d\t",p[i]);
printf("%d\n",*(p+i));
}
*/
为什么c语言中i[p]与p[i]是等效的?
因为编译器会翻译为指针表示法后再解析,即*(i+p)和*(p+i) ,根据交换律,二者等价