c语言这代码什么意思

void fun ( char *pstr[6])
{ int i, j ;
char *p ;

for (i = 0 ; i < 5 ; i++ ) {
/**************found**************/
for (j = i + 1; j < 6; j++)
{
if(strcmp(*(pstr + i), *(pstr + j)) > 0)
{
p = *(pstr + i) ;
/**************found**************/
*(pstr + i) = *(pstr + j) ;
*(pstr + j) = p ;
}
}
}
}
strcmp的*(pstr+i)是比较字符吗,还是字符串。还有p不知指针吗,为什么可以把p=*(pstr+j)字符给指针,不应该是地址吗

这应该是c语言等级考试的题或是模拟c语言等级考试的题。
这种题是让你在*****found*****与*****found****之间的语句中找出并修改错误,
使用程序能得到正确的执行结果。
注意:
*****found*****与*****found****之外的语句不可修改,修改则本题一分也得不到。
温馨提示:答案为网友推荐,仅供参考