指针数组
程序代码:#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函数中的指针数组中的每个元素可不可以看做是指针变量,如果是应该只是换了形参的值,没有改实参的吧?









