指针数组问题
#include <stdio.h>#include <string.h>
int main()
{void sort(char *name[ ],int n);
void print(char *name[ ],int n);
char *name[ ]={"Follow","Great", "FORTRAN","Computer"};
int n=4;
sort(name,n);
print(name,n);
return 0;
}
void sort(char *name[ ],int n)
{char *temp; int i,j,k;
for (i=0;i<n-1;i++)
{ k=i;
for (j=i+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if (k!=i)
{ temp=name[i]; name[i]=name[k];
name[k]=temp;
}
}
}
void print(char *name[ ],int n)
{ int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
temp=name[i]; name[i]=name[k];这不是不行的吗?就像
#include <stdio.h>
int main()
{void swap(int *p1,int *p2);
int a,b; int*pointer_1,*pointer_2;
scanf("%d,%d",&a,&b);
pointer_1=&a; pointer_2=&b;
if (a<b) swap(pointer_1,pointer_2);
printf("max=%d,min=%d\n",a,b);
return 0;
}
void swap(int *p1,int *p2)
{ int *p;
p=p1; p1=p2; p2=p;
}
这是不行的。
为什么那个temp=name[i]; name[i]=name[k];又行啊??