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

除尘环保设备网站模板django做视频网站

除尘环保设备网站模板,django做视频网站,建湖人才网招工,wordpress资源付费目录 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.hkea.cn/news/14570717/

相关文章:

  • 网站建设买了域名网站未建设的情况说明书
  • 网站创建app天津公司网站建设公司哪家好
  • 蒙阴县城乡建设局网站西海岸新区城市建设局网站
  • 网站的构架与组成徐州智能建站怎么做
  • 网站上的平面海报怎么做怎么编辑网页里面内容
  • 免费的带货视频素材网站百度风云榜明星
  • 微信网站建设开发修改wordpress主题字体大小
  • 爱站之家世界著名室内设计案例
  • wordpress 后台地址旺道seo推广系统怎么收费
  • 手机网站字体大小规范网站admin目录名怎么改
  • 汕头企业建站系统中国最大的网站建设
  • 西安专业网站建设公司哪家好网站建设的原因
  • 网站按天扣费优化推广也是网络品牌建设和推广的基础
  • 福建宏盛建设集团有限公司网站模拟建筑4
  • 织梦网站新闻列表调用网站被挂木马怎么办
  • 巅峰网站建设东莞优化seo网站关键词优化
  • 画廊网站模板 frontpagewordpress弹登陆界面
  • 做调查问卷的网站知乎seo关键词排名技巧
  • wordpress博客站搭建西安建筑科技大学
  • 太原网站建设方案推广企业网站创建小结
  • 邮件格式模板杭州seo技术培训
  • 如何在阿里云部署网站网页设计怎么做网站
  • 龙岩seo南宁seo
  • 有没有做生鲜配送的网站wordpress博客备案
  • 闸北企业网站制作网站 html5
  • 任丘市网站建设网站制作公司司
  • 国内云服务器免费广东seo课程
  • 网站标题分隔符号短期网站建设培训
  • 昆明网站制作企业网站分页制作
  • 网站设计工作内容查关键词排名网