#include<stdio.h> #include<stdlib.h> void print(int *arr,int sz) { for (int i = 0; i < 10; i++) { printf("%d ", *(arr + i)); } } int cmp_int(const void* e1, const void* e2) { return *(int*) e1 - *(int*) e2; //return值大于1交换,值=0不变,值<0,不换。 } int main() { int arr[] = { 9,8,7,6,5,4,3,2,1,0 }; int sz = sizeof(arr) / sizeof(arr[0]); qsort(arr, sz, sizeof(arr[0]), cmp_int); print(arr, sz); return 0; }
qsort的格式是数组元素的首地址,数组元素个数,数组成员的字节大小,以及比较的函数,这里传函数就是用到了函数指针。什么是函数指针,我在我写的文章中有提及过。