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

焦作做微信网站多少钱广州景点排行榜前十名

焦作做微信网站多少钱,广州景点排行榜前十名,深圳专业做网站较好的公司,设计公司logo最重要的是什么目录 1. 回调函数 2. qsort相关知识#xff08;qsort可用于各种类型变量的排序#xff09; 一 回调函数 1定义/作用:把函数的指针#xff08;地址#xff09;作为参数传递给另⼀个函数#xff0c;当这个指针被⽤来调⽤其所指向的函数 时#xff0c;被调⽤的函数就…目录 1. 回调函数 2. qsort相关知识qsort可用于各种类型变量的排序 一      回调函数 1定义/作用:把函数的指针地址作为参数传递给另⼀个函数当这个指针被⽤来调⽤其所指向的函数 时被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅直接调⽤⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的作用)⽤于对该事件或条件进⾏响应。 2好处下面我们来看两个效果相同的代码比较它们的简约程度 代码1(未使用回调函数 代码2(使用回调函数 总结这里我们使用回调函数使得重复得部分得到了优化代码变得更加简约。 二      qsort相关知识 1形式 void qsort (      void* base//base-待排序数组中的首元素      size_t num//待排序数组中的元素个数因为元素个数不可能是负数所以用size_t定义      size_t size//待排序数组中的一个元素的大小因为一个元素的大小不可能是负数所以用        size_t定义     int* *cmp)(const void*,const void*)//函数指针--指针指向的函数可用于比较base指向的数组中任何两个元素的大小。  因为用于比较的数组类型不同所以用void定义又因为我们只对数据进行排序而不对数据进行改变所以用const修饰防止数据被改写      ) 2   qsort 使⽤举例 2.1使⽤qsort函数排序整型数据 #include stdio.h //qosrt函数的使⽤者得实现⼀个⽐较函数int int_cmp(const void * p1, const void * p2) {return (*( int *)p1 - *(int *) p2); }int main() {int arr[] { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };int i 0;qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp);for (i 0; i sizeof(arr) / sizeof(arr[0]); i) {printf( %d , arr[i]); }printf(\n); return 0; } 2.2使⽤qsort函数排序结构数据要指明排序类型例如描述一个人是使用结构体可能含有姓名性别等这时候就要指明你要排序的数据如要对姓名就要指明姓名 按照名字来排序 注意在按照名字进行比较时和整型有所不同因为名字是字符串要用strcmp函数。 按照年龄来⽐较 2.3 qsort函数的模拟【实现使⽤回调函数模拟实现qsort采⽤冒泡的⽅式】。 主体框架 注意我们这里要模仿qsort函数对其冒泡排序设置参数 排序的实现 注意这里和冒泡排序有所不同的是在于冒泡排序只对整型排序直接比较即可而我们这里比较两个元素的大小是通过字符类型来比较因为每个整数数组中的元素都是占4个字节所以要用强制类型转换将其转换为char*型而这里的width表示的是整型数组中一个元素的长度所以这里的(char*)base j * width,和(char*)base(j 1) * width表示第j个元素和第j1个元素 函数的声明 实现交换 因为一个整型占4个字节无法进行交换这时候我们将其划分为一个一个字节将其强制类型转换为字符型char*然后我们只要将两个元素的4个字节一一交换即可。 这里的n表示的是width(4),因为一个整型占4个字节而我们前面将其强制类型转换为字符型char*,这时候我们只要将两个元素的4个字节一一交换即可。 整体代码 #include stdio.hint cmp_int(const void* e1, const void* e2) {return *(int*)e1 - *(int*)e2; }void swap(char* buf1, char* buf2, size_t n) {int i 0;for (i 0; i n; i){char tmp *buf1;*buf1 *buf2;*buf2 tmp;buf1;buf2;} }void bubble_sort(void* base, size_t sz, size_t width, 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 - i - 1; j){if (cmp((char*)base j * width, (char*)base (j 1) * width) 0){//判断是否满足条件满足则进行交换swap((char*)base j * width, (char*)base(j 1) * width, width);}}} } void print(int arr[], int sz) {int i 0;for (i 0; i sz; i){printf(%d , arr[i]);}printf(\n); } void test() {int arr[] { 9,8,7,6,5,4,3,2,1,10};int sz sizeof(arr) / sizeof(arr[0]);bubble_sort(arr, sz, sizeof(arr[0]), cmp_int);//模仿qsort函数对其设置参数print(arr, sz);//打印 } int main() {test();return 0;} 本篇文章就到此结束希望有所能帮到 读者更好的了解指针。
http://www.w-s-a.com/news/868008/

相关文章:

  • asp网站伪静态文件下载seo外包公司哪家好
  • 淘宝客网站根目录怎么建个废品网站
  • 网站备案更改需要多久百度免费网站空间
  • 外发加工是否有专门的网站wordpress主页 摘要
  • 企业网站优化系统浙江建设信息港证书查询
  • 很多年前的51网站如何做跨境电商需要哪些条件
  • 网站建设中 请稍后访问互联网营销设计
  • 软文网站名称用户浏览网站的方式
  • 大兴模版网站搭建哪家好网站建设与管理管理课程
  • 四川成都网站制作微信广告平台推广
  • 网站价格网页制作网站开发实训步骤
  • cms 导航网站鹤壁做网站价格
  • 微信营销软件免费版郑州关键词优化费用
  • 邢台专业做网站哪家好临沂网站建设中企动力
  • 建设网站是主营成本吗wordpress 后台
  • 猎头可以做单的网站企业网站建设
  • 建小程序需要网站吗在putty上怎样安装wordpress
  • 天津智能网站建设找哪家WordPress相册插件pro
  • 电脑网站页面怎么调大小济宁网站建设软件开发
  • 亿玛酷网站建设广州增城区最新消息
  • 企业网站视频栏目建设方案中企动力网站模板
  • 网站页面策划国外注册域名的网站
  • 百中搜如何做网站排名网站维护一年一般多少钱
  • 镇江地区做网站的公司wordpress说说加分类
  • 深圳高端网站设计免费的关键词优化软件
  • 视频网站公司沈阳网站建设服务
  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库