1.swap(int *p1,int *p2)
{ int *p;
p=p1;
p1=p2;
p2=p; 不行;不能企图通过改变形参指针变量的值来改变实参,而要通过改变实参变量指针指向的值;
}
main()
{ int a,b;
int *pointer1,*pointer2;
scanf("%d,%d",&a,&b);
pointer1=&a;
pointer2=&b;
if(a<b) swap(pointer1,pointer2);
printf("\n%d,%d\n",*pointer1,*pointer2);
}
2.#include<string.h>
main()
{
void sort(char *name[],int n);
void print(char *name[],int n);
char *name[]={"follow me","basic","great wall","format","computer designe"};
int n=5;
sort(name,n);
print(name,n);
}
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!=j)
{ 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]);
}
第一个不行,为什么第二个行呀?两者实质感觉一样啊!只是前者只有一个数字,而后者是一个数组形式,
只是存储单元大小不一呀