根据在网上找的代码自己改了一个 但是不知道哪里错了
求问(*p)[N]和*p[N]在写的时候有什么区别
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
void StrSort(char (*p)[N])
{
int i,j,k,x[M]; char t[N];
for(i=0; i<M; i++ )
x[i]=strlen(p[i]);
for(i=0; i<M; i++ ) /////////////i<M
{ k=i;
for(j=i+1; j<M; j++ )
if(x[j]<x[i]) k=j;
if(k!=i)
{ strcpy(t,p[i]);
strcpy(p[i],p[k]);
strcpy(p[k],t);
x[k]=x[i];
}
}
}
int main()
{
char p[M][N];
int i;
for(i=0;i<M;i++)
scanf("%s",p[i]); /////////////////不要加\n
StrSort(p);
for(i=0;i<M;i++)
printf("%s\n",p[i]);
return 0;
}
/*
12345
1234
123
12
1
*/