我是 C 语言的初学者,想习惯术语和指针。在寻找对数值数组的元素进行排序的方法时,我发现了以下工作函数原型。该函数是 qsort,它使用指针。现在我的理解是“const”这个词确保值 a 和 b 不变,但指针不变。如果我在这里错了,请纠正我。我的问题是:
- 为什么我们一开始
void *
就不能用的功能int *
呢? - 返回部分的构造如何
*(int*)a
工作? 为什么 qsort 算法需要这么多参数?
int compare (const void *a, const void *b) { return ( *(int*)a - *(int*)b ); }
非常感谢您的回答。PS:这对我来说是一项相当复杂的任务。