[求助]指针与数组名问题
以下程序是对字符串的排序:#include<stdio.h>
#define N 3
#define M 10
main()
{
int i,j,k;
char *str[N],a[N][M],*p,*q;
for(i=0;i<N;i++)
{
scanf("%s",a+i);
str[i]=a+i;
}
q=str;
for(i=0;i<N-1;i++)
{k=i;
for(j=i+1;j<N;j++)
if(strcmp(*(str+k),*(str+j))>0)k=j; /*请问这里为什么不能将*(str+k)换为*(q+k),前面我已
if(k!=i) 定义char *q,并且q=str
{ 将程序变为
p=*(str+i); if(strcmp(*(q+k),*(q+j))>0)k=j;
*(str+i)=*(str+k); if(k!=i) {
*(str+k)=p; p=*(str+i);
} *(str+i)=*(str+k);
} *(str+k)=p;
for(i=0;i<N;i++) }
printf("%s\n",str[i]); }
} 这样为什么不能得到正确的结果