当前位置: 首页 > news >正文

曰本免费网站品牌宣传推广策划方案

曰本免费网站,品牌宣传推广策划方案,网站建设 保障接单 计划,雄安新区网站建设公司目录 1.回顾回调函数 2.写一个bubble_sort函数 2.1认识一下qsort函数 ​编辑2.2写bubble_sort函数 今天我们继续深入学习指针 1.回顾回调函数 我们回顾一下之前学过的回调函数 回调函数就是一个通过函数指针调用的函数 如果你把函数的指针(地址)…

目录

1.回顾回调函数

2.写一个bubble_sort函数

2.1认识一下qsort函数

​编辑2.2写bubble_sort函数


今天我们继续深入学习指针

1.回顾回调函数

我们回顾一下之前学过的回调函数

回调函数就是一个通过函数指针调用的函数

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外 的一方调用的,用于对该事件或条件进行响应

2.写一个bubble_sort函数

2.1认识一下qsort函数

同样,我们在cplusplus网站里学习一下

qsort - C++ Reference (cplusplus.com)

2.2写bubble_sort函数

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void qsort
//qsort底层使用的是快速排序
(void* base,//指向待排序数据的起始地址size_t num,//待排序数据的元素个数size_t size,//待排序数据的一个元素的大小,单位是字节int(*cmp)(const void* e1, const void* e2)//函数指针,指向一个比较函数,这个函数是用来比较2个元素的
);
int cmp_int(const void* e1, const void* e2)
{return *(int*)e1 - *(int*)e2;
}
struct Stu
{char name[20];int age;
};
int cmp_by_age(const void* e1, const void* e2)
{return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
}
int cmp_by_name(const void* e1, const void* e2)
{return strcmp(((struct Stu*)e1)->name , ((struct Stu*)e2)->name);
}
void swap(char* buf1, char* buf2, size_t size)
{int i = 0;for (i = 0; i < size; i++){char tmp = *buf1;*buf1 = *buf2;*buf2 = tmp;buf1++;buf2++;}
}//使用冒泡排序的算法,模拟实现一个排序函数,可以排序任意类型的数据
//bubble_sort()
void bubble_sort(void* arr,size_t sz,size_t size, int(*cmp)(const void* e1, const void* e2))
{//冒泡排序的趟数int i = 0;for (i = 0; i < sz - 1; i++){//一趟冒泡排序int j = 0;for (j = 0; j < sz - 1 - i; j++){if (cmp((char*)arr+j*size,(char*)arr+(j+1)*size)>0){swap((char*)arr + j * size, (char*)arr + (j + 1) * size,size);}}}
}
//int(*cmp)(const void* e1, const void* e2)//e1是一个指针,存放了要比较的一个元素的地址//e2是一个指针,存放了要比较的一个元素的地址//e1指向的元素大于e2指向的元素,返回一个>0的数字//e1指向的元素等于e2指向的元素,返回0//e1指向的元素小于e2指向的元素,返回一个<0的数字
void print_arr(int arr[], int sz)
{for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");
}
void test1()
{int arr[] = { 9,8,7,6,5,4,3,2,1,0 };//降序//排序为升序int sz = sizeof(arr) / sizeof(arr[0]);print_arr(arr, sz);bubble_sort(arr, sz,sizeof(arr[0]),cmp_int);print_arr(arr, sz);
}
void test2()
{struct Stu arr[] = { { "zhangsan",20 } ,{ "lisi", 18 }, { "wangwu", 12 } };int sz = sizeof(arr) / sizeof(arr[0]);bubble_sort(arr, sz, sizeof(arr[0]),cmp_by_age);bubble_sort(arr, sz, sizeof(arr[0]), cmp_by_name);}
int main()
{//test1();//测试排序整型数据test2();//测试排序结构体数据return 0;
}

这里我们写的bubble_sort函数是升序的排序,具体的实现细节,我们后面的文章会分析

http://www.yidumall.com/news/85414.html

相关文章:

  • 网站建设waocc找客户资源的网站
  • wordpress4.7.0下载画质优化app下载
  • 网站开发语言哪种简单app注册推广平台
  • web做花店网站页面seo去哪里学
  • 搭建平台的目的和意义是什么优化营商环境条例全文
  • 装潢设计属于什么专业类别网站seo优化方案
  • 如何做优化网站的原创性文章沈阳沈河seo网站排名优化
  • 游戏门户网站模板长春百度推广公司
  • 网站建设竞价托管外包网络广告投放方案
  • 深圳网站建设10086网站开发流程有哪几个阶段
  • mvc实现新闻网站开发seo是什么级别
  • 免费的推广网站有哪些注册公司
  • templates翻译杭州seo专员
  • 智能建站与正常的网站百度快照优化
  • 烟台H5高端网站建设中国公关公司前十名
  • 武威住房和城乡建设厅网站b站免费推广app大全
  • 东莞网站推广团队电脑优化大师下载安装
  • 怎么区别网站开发语言广告投放公司
  • 外贸网站seo优化方案深圳网站设计公司
  • 手机怎么制作网站教程网络营销服务公司
  • 摄影网页面制作优化大师电脑版官方
  • 石家庄营销网站建设价格重庆森林经典台词截图
  • 一般网站怎么做推广seo培训一对一
  • 建设厅网站不能刷身份证实名制百度seo公司电话
  • 电商运营的基本内容seo免费优化公司推荐
  • 做一电影网站怎么赚钱吗云南疫情最新数据消息中高风险地区
  • 济南建站服务商查看别人网站的访问量
  • 做新闻网站犯法吗市场调研分析报告范文
  • 网站建设对产品推销作用大吗企业推广哪个平台好
  • 如何设计网站后台今日新闻十大头条内容