为什么是02402?

以下程序输出结果为
int i,a[6]=(1);
for(i=1;i<6;i++)
a[i] =a[a[i-1]]*2;
for(i=1;i<6;i++)
printf(“%3d”,a门);
printf(“\n”);
我的答案:
(1)02402

你的 int i,a[6]=(1); 编译报错,应该是 int i,a[6]={1}; 吧。这样的话 a[0] = 1; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0;
for(i=1;i<6;i++)
a[i] =a[a[i-1]]*2;
循环5次分解如下:
i=1 a[1] = a[a[1-1]]*2 = a[a[0]]*2 = a[1]2 = 02 = 0;
i=2 a[2] = a[a[2-1]]*2 = a[a[1]]*2 = a[0]2 = 12 = 2;
i=3 a[3] = a[a[3-1]]*2 = a[a[2]]*2 = a[2]2 = 22 = 4;
i=4 a[4] = a[a[4-1]]*2 = a[a[3]]*2 = a[4]2 = 02 = 0;
i=5 a[5] = a[a[5-1]]*2 = a[a[4]]*2 = a[0]2 = 12 = 2;
所以下边的遍历结果是 0 2 4 0 2

a门是什麽???
a[6]=(1)又是什麽?确定是完整代码吗?