#include<stdio.h> #include<string.h> int main() { void sort(char *[]); int i; char str[10][6], *p[10] ;for(i=0;i<10;i++) scanf("%s",str[i]); for(i=0;i<10;i++) p[i]=str[i]; sort(p); printf("the output 10 string:\n"); for(i=0;i<10;i++) printf("%s,",p[i]); } void sort(char *s[]) {char *temp; int i,j; for(i=0;i<9;i++) for(j=i;j<10;j++) if(strcmp(*(s+i),*(s+j))>0) {temp=*(s+i); // *(s+i)=*(s+j);// *(s+j)=temp;// } } 问题:再函数里利用指针temp交换了指针数组,但这个数组指针不是另外开辟的空间吗?他是怎么使得原指针数组发生了改变的。麻烦了。