指针数组
程序代码:
#include<stdio.h> #include<string.h> void main() { void sort(char *name[]); void print(char *name[]); char *course[]={"Chinese","Math","English"}; sort(course); print(course); } void sort(char *name[]) { int i,j; char *temp; for(i=0;i<2;i++) for(j=0;j<2-i;j++) if(strcmp(name[j],name[j+1])>0) { temp=name[j]; //这里的转换不是只是改变了形参吗?为什么main函数中的实参所指的地址也改变了? name[j]=name[j+1]; name[j+1]=temp; } } void print(char *name[]) { int i; for(i=0;i<3;i++) printf("%s\n",name[i]); }麻烦各位看一下吧,这里sort函数中的指针数组中的每个元素可不可以看做是指针变量,如果是应该只是换了形参的值,没有改实参的吧?