C/C++小知识点:快排函数qsort与函数指针
#include <stdio.h>
#include <stdlib.h>
int compRule(const void* elem1, const void* elem2)
{
return (*(int *)elem1 - *(int *)elem2);
}
void printarray(const void* array, const int& size)
{
for (int i = 0; i < size; i++)
{
printf("%d ", ((int *)array)[i]);
}
printf("\n");
}
int main()
{
int array[] = {4, 2, 0, 56, 37, 16, 0, 36, 77};
qsort(array, sizeof(array) / sizeof(int), sizeof(int), &compRule); //快速排序
void (* print)(const void *, const int&) = &printarray; //函数指针
print(array, sizeof(array) / sizeof(int));
return 0;
}