大家能看看这个图上的吗!

img

2,4,6,8
i=0,p=3 a[0]=8 8 4 6 8
i=1,p=2 a[1]=6 8 6 6 8
i=2,p=1 a[2]=6 8 6 6 8
i=3,p=0 a[3]=8 8 6 6 8

初始a 2 4 6 8
for循环i从0到3 p从a[3]移动到a[0]
i=0 a[0]=a[3]=8
i=1 a[1]=a[2]=6
i=2 a[2]=a[1]=6
i=3 a[3]=a[0]=8
所以a[3]=8

循环前两次给a[0]a[1]分别赋值8 6 到a[2] p指向a[1] 所以a[2]=a[1]=6 同样 a[3] p此时指向a[0]值为8 a[3]=a[0]=0运行过程中a数组中的值实时在变

确实是8; 考虑for循环中的内容, 第一步:a[0] = *p = 8; 然后i ++, p--, 第二步, a[1] = *p = 6;
注意这个时候:p--依旧是在a中取数, 此次已经取到a[1]了, 然而a[1]已经变化编程6了
最后一步也是一样的, p--最后指向a[0], 但此时a[0]在第一次复制的时候就已经编程8了, 将8赋值给a[i]了
有用请采纳