- 注册时间
- 2004-10-13
- 最后登录
- 2019-5-15
⑧专业
*永恒国度*
- 积分
- 14145
|
再问两个程序,如下:
#include<string.h>
void main()
{
char *string[3]={"data structure","computer design","c language"};
char **p1,**p2,*p;
p1=&string[0];p2=&string[1];
if(strcmp(*p1,*p2)>0)
{
p=*p1;*p1=*p2;*p2=p;
}
p2=&string[2];
if(strcmp(*p1,*p2)>0)
{
p=*p1;*p1=*p2;*p2=p;
}
p1=&string[1];
if(strcmp(*p1,*p2)>0)
{
p=*p1;*p1=*p2;*p2=p;
}
for(i=0;i<3;i++)
printf("%s\n",string);
}
---------------------------------------------------------------------------------------------------------------
#include<string.h>
void main()
{
char *string[3]={"data structure","computer design","c language"};
char *p;
int i;
if(strcmp(string[0],string[1])>0)
{
p=string[0];string[0]=string[1];string[1]=p;
}
if(strcmp(string[0],string[2])>0)
{
p=string[0];string[0]=string[2];string[2]=p;
}
if(strcmp(string[1],string[2])>0)
{
p=string[1];string[1]=string[2];string[2]=p;
}
for(i=0;i<3;i++)
printf("%s\n",string);
}
这样两对指针数组里面元素排序的程序,为什么第一个程序是实现string元素值的交换,而第二个程序只是实现指向的改变呢? 不是两程序都是实现指向的改变吗?[s:8] |
|