int comp(const void* j, const void* i)
{
return(*(char*)i - (char)j);
}
这个函数比较的是单个的字符,一般用来作为参数传给一个排序的函数
比如qsort,实现字符串内对字符的排序(而不是按照字符串排序)。
comp函数返回>0说明左边大,<0说明右边大,==0是一样大,因此可以作为排序的条件。
如果你把ij颠倒,就是倒排序
i和j都是指针,而且都是空类型(void)的指针,空类型的指针只表明数据的地址,但没有表明数据的类型,如果要对数据进行操作,就需要知道数据的类型,因此在使用时要显式转换指针类型。这里是char类型,所以要用char*来转换。(char*)i目的是把指针i的类型转换为字符型的,再加一个*就是取指针所指空间的值。以上的代码跟以下的等效:
int comp(const char* i,const char* j)
{
return *i-*j;
}