根据 C 参考,标准库中提供的 qsort 函数具有以下形式
void
qsort ( void * base, size_t num, size_t size, int ( * compar ) ( const void *, const void * ) );
我的问题是为什么比较函数必须在表单中有参数,const void *
这是什么意思const void *
另一个问题是,如果一个函数接受形式为 的参数const void *
,它可以改变这个指针指向的值吗?
例子:
static int double_a_number(const void * val){
*(int *)val = *(int *)val * 2;
return 0;
}
这真的会使变量 val 加倍吗?
感谢帮助!