#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