这段代码怎么分析呀,有关数组指针的


#include <stdio.h>
int fun(int*a,int*b,int n)
{
    int i=0,j=0,sum=0;
    for(;i<n;i++)
    {
        sum+=a[i];
        if((i+1)%2==0)
        {
            b[j++]=sum;
            sum=0;
        }
    }
    return j;
}
main()
{
    int a[8]={1,0,2,3,5,4,2,1},b[8],k,i;
       k=fun(a,b,8);
       for(i=0;i<k;i++)
          printf("%d",b[i]);
}

这个题目有点意思,解析看注释

#include <stdio.h>
int fun(int*a,int*b,int n)
{
    int i=0,j=0,sum=0;
    for(;i<n;i++)//for循环从0开始循环8次
    {
        sum+=a[i];//从下标i开始求和a里面i和i之后的元素
        if((i+1)%2==0)//如果i+1是偶数
        {  //j从0开始++,后置++是先使用再++
            b[j++]=sum;//b数组内下标为j的位置变成sum
            sum=0;//清空sum
        }
    }
    return j;//返回计数器j
}
main()
{
    int a[8]={1,0,2,3,5,4,2,1},b[8],k,i;
       k=fun(a,b,8);//接收j的计数值,对应b数组元素个数
       for(i=0;i<k;i++)
          printf("%d",b[i]);//打印数组b的结果
}

如果对你有帮助,还请点个采纳,万分感谢!