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

深圳微信网站建设市场营销方案范文

深圳微信网站建设,市场营销方案范文,沈阳妇科私立医院排名,网上有做衣服的网站目录 1. 回调函数 2. qsort相关知识(qsort可用于各种类型变量的排序) 一 回调函数 1定义/作用:把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数 时,被调⽤的函数就…
目录
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个元素和第j+1个元素

函数的声明

实现交换

因为一个整型占4个字节无法进行交换,这时候我们将其划分为一个一个字节,将其强制类型转换为字符型char*,然后我们只要将两个元素的4个字节一一交换即可。

 这里的n表示的是width(4),因为一个整型占4个字节,而我们前面将其强制类型转换为字符型char*,这时候我们只要将两个元素的4个字节一一交换即可。

整体代码

#include <stdio.h>int 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.shuangfujiaoyu.com/news/38270.html

相关文章:

  • 当涂城乡建设局的网站公司域名注册步骤
  • 网站建设实习日记免费注册公司
  • 犀牛云做的网站好不好磁力宅在线搜种子
  • 泉州企业网站设计绍兴seo推广
  • 免费网站自己做外贸营销
  • 网站建设方案书 内容管理制度苏州网络推广服务
  • 荣成市有做网站的吗一篇好的营销软文
  • 网站网页设计内容榆林seo
  • 如何跟进psd做网站长尾关键词挖掘网站
  • 新共享项目加盟代理网站推广和优化系统
  • 2022房地产行业现状及前景seo数据优化教程
  • 网站开发验收单分发平台
  • 网站项目沈阳沈河seo网站排名优化
  • 短视频素材下载网站 免费seo优化工具哪个好
  • b2c型网站建设抖音指数查询
  • 二级学院网站建设及利用情况企业网站制作费用
  • 网站开发 网络工程 哪个好江苏seo技术教程
  • 株洲做网站需要多少钱杭州谷歌seo公司
  • 建设网站的一般步骤是软文模板app
  • 武汉建商城网站公司网站推广方法
  • 上海网站推荐汕头网站优化
  • 织梦m网站伪静态百度投放
  • 专门做试卷的网站营销软文100字
  • 公司刚做网站在那里找图片做网络营销专家
  • 网站建设现状分析企业网站是什么
  • 发稿类别是什么哈尔滨百度网站快速优化
  • 做调查挣钱的网站优化营商环境心得体会2023
  • 北京网站建设 标准型 新翼百度推广可以自己开户吗
  • 买域名后 怎么做网站自动优化app
  • 个人网站设计与制作设计思路抖音广告投放平台官网