void 指针的背后藏着什么? void是什么意思( 三 )

(3)在main函数中针对int类型和结构体类型进行调用:
int main(int argc, char *argv[]){    // test1:int类型求最大值    int nums[] = { 3,5,8,7,6 };    int *pMax = (int *)getMax(nums,sizeof(int),sizeof(nums)/sizeof(int),        intDataCompare);    int max = *pMax;    printf(%dn,max);    // test2:结构体类型求最大值    Dog dogs[] ={{沙皮,3},{腊肠,10},{哈士奇,5},        {京巴,8},{大狗,2}};    Dog *pDog = (Dog *)getMax(dogs,sizeof(Dog),        sizeof(dogs)/sizeof(Dog),dogDataCompare);    printf(%s=%d,pDog->name,pDog->age);    return 0;}最终运行结果如下图所示:

void 指针的背后藏着什么? void是什么意思


3.2 C中自带的qsort函数—自定义排序qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序 。排序之后的结果仍然放在原数组中 。
使用qsort函数必须自己写一个比较函数 。我们可以看看qsort函数的原型:
 void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );    int nums[] = { 3,5,8,7,6 };    qsort(nums,sizeof(nums)/sizeof(int),sizeof(int),intDataCompare);    int i;    for(i=0;i<sizeof(nums)/sizeof(int);i++)    {        printf(%d ,nums[i]);    }    printf(n);    Dog dogs[] ={{沙皮,3},{腊肠,10},{哈士奇,5},        {京巴,8},{大狗,2}};    qsort(dogs,sizeof(dogs)/sizeof(Dog),sizeof(Dog),dogDataCompare);    for(i=0;i<sizeof(dogs)/sizeof(Dog);i++)    {        printf(%s %d ,dogs[i].name,dogs[i].age);    }那么,快速排序后是否有结果呢?答案是肯定的,我们可以传入各种比较方法,可以升序排序也可以降序排序 。
void 指针的背后藏着什么? void是什么意思


—— The End ——

推荐阅读