这个程序怎么读。。。。。。。。?

#include
#include

unsigned char average_filter(unsigned int p)
{ unsigned int *point,i,j,n,d,sum;
for(i=0;i<19;i++)
{point=p;
n=19-i;
for(j=0;j<n;j++)
{if(*point<
(point+1))
{ d=*point;
point=(point+1);
*(point+1)=d;
}
point++;
}
}
point=p+5;
sum=0;
for (i=0;i<10;i++)
{
sum=sum+*point;
point++;
}
sum=sum/10;
return sum;
}

void main(void)
{unsigned int *p1,i,m;

SCON=0x52;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
TI=1;

p1=0x50;

*p1=100;
for(i=0;i<20;i++)
{ *(p1+1)=*p1-2;
printf("%d,i=%d\n",*p1,i);
p1++;
}
printf("\n");

     p1=0x50;
     m=average_filter(p1);

   for(i=0;i<20;i++)
        printf("%d,",*(p1+i));
    printf("\n");

  for(i=5;i<15;i++)
        printf("%d,",*(p1+i));
    printf("\n");

    printf("m=%d\n",m);

}
图片说明

这个程序没有编程规范

*p1=100;
for(i=0;i<20;i++)
{ *(p1+1)=*p1-2;
printf("%d,i=%d\n",*p1,i);
p1++;
}
这里给p1后面的地址赋值,分别将为98,96,94,92。。。80给p1后面一共给sizeof(int)×20的区域大小赋值
结束时p1指针存放着最后一个sizeof(int)大小区域的头地址,
其他的自己去理解,
没有编程规范看着好累

这个算法是中值滤波么?我是仅仅从字面意思上来理解的