ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

C语言第十一课:指针(五)

C语言第十一课:指针(五) 一、回调函数把一个函数 A当作参数传给另一个函数 B让 B 在合适时机自动调用 AA 就叫回调函数。二、qsort使用举例在之前我们学过冒泡排序但是只能处理整型数组的排序如下图qsort 函数可以排序任意类型的数据下面我们来学习一下qsort 函数void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*));1.参数1.void *base数组首地址通用空指针可以接收任意类型数组2.size_t nitems数组元素个数3.size_t size单个元素的字节大小一般写sizeof(arr[0])4.int (*compar)(const void *, const void *)函数指针接收回调函数2.回调比较函数规则int compar(const void *a, const void *b) { //a、b是待比较两个元素的地址 }返回值规则返回负数a 排在 b 的前面a b返回正数b 排在 a 的前面a b返回0a 和 b 相等顺序不关心int 数组速记升序return *(int*)a - *(int*)b;降序return *(int*)b - *(int*)a;原理void*是空指针不能直接解引用必须强制转换成对应类型指针再取值。ex整型float :struct按年龄排序按名字排序补充1.两个字符串比较大小的方法strcmpstrcmp(str1,str2)str1 str2 返回 0str1 str2 返回 0str1 str2 返回 02.- 结构体成员访问操作符结构体指针 - 成员名结构体变量.成员名这两种的作用是一样的tip(*p).age的括号不能丢*p.age是错的.优先级比*更高三、qsort 函数的模拟实现
返回列表