C语言中,这个简单程序的语句什么意思?

int fun(int *a,int n)
{
int *p,*s;
for(p =a ,s =a; p-a<n; p++)
if(*p>*s)s=p;
return *s;
}
总共五行语句。我想明白每一行的意思:如第一行是定义一个叫fun的函数,包含整形指针a,整形n?……下面几行看不懂,拜托了!感谢

int fun(int *a,int n)
{
int *p,*s; //分别定义两个叫p和s的int型指针
for(p =a ,s =a; p-a<n; p++) //将a的地址分别赋值给p和s,当p-a>n时退出for循环,p地址自加
if(*p>*s)s=p; //当p指向的值大于s指向的值时,将p的地址赋值给s
return *s; //返回s指向的值
}
这个函数是为了选出地址[a,a+n]之间的最大值?
温馨提示:答案为网友推荐,仅供参考
相似回答