#include <stdlib.h>
int int_sorter(const void *first_arg, const void *second_arg)
{
int first = *(int*)first_arg;
int second = *(int*)second_arg;
if (first < second)
{
return -1;
}
else if (first == second)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int array[10];
int i;
/* fill array */
for (i = 0; i < 10; ++i)
{
array[ i ] = 10 - i;
}
qsort(array, 10 , sizeof(int), int_sorter);
for (i = 0; i < 10; ++i)
{
printf ("%d\n" ,array[ i ]);
}
}
我不明白这行:函数指针的问题用C
int first = *(int*)first_arg;
任何人都可以帮助我吗?解释一下?非常感谢你!!!
这是铸造吗?明确演员,从void*
到int
?但为什么我们需要在()
以外的符号?
“为什么我们需要一个*符号* outside()?”? – Mehrdad 2011-04-05 04:03:26