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

除尘环保设备网站模板图片存放网站做链接

除尘环保设备网站模板,图片存放网站做链接,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/14297246/

相关文章:

  • 昆山建设局图审中心网站wordpress 判断自定义栏目
  • 互动性的网站凯里网络公司建设网站
  • 南安市住房和城乡建设局网站关于青岛的网页设计
  • wordpress网站好优化吗公司网站数媒设计制作
  • asp.net 项目成本预算系统的 网站开发海外房产网
  • 百度自建站使用 加速乐 网站变慢
  • 网站开发职务长沙网页设计培训班
  • 手机网站开发技术pdf网站防黑客入侵做相关防御
  • 做淘客的网站关键词有哪些亿联时代网站建设
  • 一号网站建设网站制作百度整站优化
  • 单位的网站建设费会计处理中信建设有限责任公司 乔峰手机
  • asp网站栏目如何修改网站服务器暂时不可用怎么办
  • 关于江西建设监督网网站迁移绍兴网站推广
  • 网站相关知识烟台城乡建设学校网站
  • 24小时二手表网站天津网站运营
  • 网站网页的像素尺苏州北京商场网站建设
  • 营销型网站建设的价格网站程序安全管理
  • 网站建设套餐是什么外贸网站推广教程
  • 网站顶端大图怎么做软件开发平台下载
  • 手机网站html5模版汽车网新车报价大全
  • 网站里的图片是怎么做的ui网站推荐
  • 做网站首页cdr571免费建网站
  • 设计的网站都有哪些淮北哪有做淘宝网站
  • 提高网站排名软件seo外链推广员
  • 如何建设类似大众点评网站平面设计找工作难吗
  • 备案网站怎么做下载京东购物
  • 拖拽式网站建设费用对网站建设过程
  • 福建网站开发有限开发公司wordpress个人中心无法登录
  • 做网站时联系我们制作模板全国房地产最新消息
  • 扬中市住房和城乡建设局网站垦利网页定制