上题目,下面上一个分析:

n = 10, i = 9, pa[6] = pa[6] + pa[9];

........

过程中出现pa[6] + pa[6],此时的pa[6] != 7,而是现内存下的值pa[6] = 0 + 9 + 8 + 7 = 24

pa[6] = pa[6] + pa[6] = 48

最终pa[6] = 0 + (9 + 8 + 7) + (9 + 8 + 7) + 6 + 5 + 4 + 3 + 2 = 68

复制代码
#include <stdio.h>

void fun(int *pa, int n)
{
        int i;

        for (i = n - 1; i > 0; i--)
                *(pa+6) += pa[i];
        
}
int main(void)
{
        int a[10] = {1,2,3,4,5,6,7,8,9,0};
        int m = 10;
        fun(a,m);
        printf("The a[6] %d\n",a[6]);
        return 0;
}
复制代码

输出结果:

The a[6] 68