数组下标不可以为负数,但可以通过指针实现,因为下标只是给出了一个与当前指针地址的偏移量而已,只要根据这个偏移量能定位得到目标地址即可。ps:不可以直接a[-4],因为a是数组!
下面给出一个下标为负数的示例:
#include <stdio.h>
int main()
{
int i;
int a[5]={0,1,2,3,4};
int *p=&a[4];// 指针p获得的当前地址指向下标为4的元素
for(i=-4; i<=0; i++)
printf("%d %x\n", p[i], &p[i]);
return 0;
}
//输出结果为
//0 b3ecf480
//1 b3ecf484
//2 b3ecf488
//3 b3ecf48c
//4 b3ecf490