[急]:高手们:关于qsort()的一个小问题!
int compare(const void* a, const void* b);
char* list[5]={"cattle","car","cabet","cap","canon"};
void main()
{
qsort((void*)list,5,sizeof(list[0]),compare);
for(int i=0; i<5; i++)
cout <<list[i] <<endl;
}
int compare(const void* a, const void* b)
{
return strcmp(*(char**)a, *(char**)b);
}
请问:
1.没有看到a与b的初值,有点不明白,这样可以比较大小,是依什么来比较的,请说明白一点好吗?
2.最后一个参数是如何工作的.
3.如果我把
int compare(const void* a, const void* b)
{
return strcmp(*(char**)a, *(char**)b);
//改成:return strcmp((char*)a, (char*)b);就不能进行排序,我不明白是如何工作的?
}
4.int compare(const void* a, const void* b)这个函数是返回一个整型值,如果我在qsort()最后一个参数加入整型数据就出错。
请高手们帮帮忙!谢谢!
如果可以话,请留下你们的QQ或MSN,交个朋友!感激!