关于指针数组排序字符串的问题
为什么我编译的时候总是少一个书名???????#include "stdio.h"
#include "string.h"
#include "conio.h"
void booksort(char *bname[],int bnum)/*书名排序程序*/
{
char *tmp="\0";
int i,j;
for(i=0;i<bnum;i++)
{
for(j=0;j<bnum-i;j++)
{
if(strcmp(bname[j],bname[j+1])>0)
{
tmp=bname[j];
bname[j]=bname[j+1];
bname[j+1]=tmp;
}
}
}
}
void bookprint(char *bname[],int bnum)/*打印书名*/
{
int i;
for(i=0;i<bnum;i++)
printf("%s\n",bname[i]);
}
void main()
{
static char *bname[]={"visual c++","basic","fortran","delphi","power builder"};
int bnum=5;
clrscr();
bookprint(bname,bnum);
booksort(bname,bnum);
puts("\n");
bookprint(bname,bnum);
}
我把交换地址那个地方加上*就可以正确运行了,但是那样不又是交换值了吗?我想知道怎么交换地址排序。。。。