Don*_*Lun 0 c pointers casting
#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 ] );
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白这一行:
int first = *(int*)first_arg;
Run Code Online (Sandbox Code Playgroud)
谁能帮助我?解释一下?非常感谢你!!!
这是一个演员吗?显性演员,从?void*到 int但为什么我们需要外面的&符()?