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

河南网站建设公司排名建立自己的WordPress主题

河南网站建设公司排名,建立自己的WordPress主题,wordpress 缓存文件 手动删除,网页制作图片格式目录 1.C语言快速排序的库函数 1.使用qsort函数前先包含头文件 2.qsort的四个参数 3.qsort函数使用 对int类型的数据排序 运行结果 对char类型的数据排序 运行结果 对浮点型数据排序 运行结果 2.题外话:函数名的本质 1.C语言快速排序的库函数 cplusplus网的介绍 ht…

目录

1.C语言快速排序的库函数

1.使用qsort函数前先包含头文件

2.qsort的四个参数

3.qsort函数使用

对int类型的数据排序

运行结果

对char类型的数据排序

运行结果

对浮点型数据排序

运行结果

2.题外话:函数名的本质


1.C语言快速排序的库函数

cplusplus网的介绍 https://legacy.cplusplus.com/reference/cstdlib/qsort/?kw=qsort

04a9c478c7a342679e27c6582579d04d.png

解释:

1.使用qsort函数前先包含头文件<stdlib.h>

2.qsort的四个参数

base:指向要排序的数组(即数组名)

num:数组元素的个数(类型size_t)

size:每个元素所占的空间(类型size_t)

compare:比较函数,用于比较数组的两个元素(这个参数有点特殊,之前没有见过:函数本身也可以作为另一个函数的参数)

函数没有返回值(void类型)

网站给出比较函数应该遵照的原型:int compar (const void* p1, const void* p2);

注意到比较函数的返回类型为int(显然有三种情况,负数,0和正数)

负数0正数
*p1<*p2*p1==*p2

*p1>*p2

网站给出比较函数的写法

int compareMyType (const void * a, const void * b)
{if ( *(MyType*)a <  *(MyType*)b ) return -1;if ( *(MyType*)a == *(MyType*)b ) return 0;if ( *(MyType*)a >  *(MyType*)b ) return 1;
}

由于a是void*类型的,使用前应该强制类型转换为MyType类型,之后再解引用

3.qsort函数使用

对int类型的数据排序

#include <stdlib.h>
int compare(const void* a, const void* b)
{if (*(int*)a < *(int*)b) return -1;if (*(int*)a == *(int*)b) return 0;if (*(int*)a > *(int*)b) return 1;
}int main()
{int arr[] = { 3,5,1,6,2,3,9,0,8 };printf("排序前:");PrintArray(arr, sizeof(arr) / sizeof(arr[0]));qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof(int), compare);printf("排序后:");PrintArray(arr, sizeof(arr) / sizeof(arr[0]));return 0;
}

备注:如果要排降序,compare函数有两种改法①将compare的返回值-1和1交换即可 ②或者将>和<交换

运行结果

e0a025b2c02b46c3b36cae53a596b1a6.png

对char类型的数据排序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void* a, const void* b)
{if (*(char*)a < *(char*)b) return -1;if (*(char*)a == *(char*)b) return 0;if (*(char*)a > *(char*)b) return 1;
}int main()
{char arr[] = { "aoxhfekmc"};printf("排序前:");printf("%s", arr);qsort(arr, sizeof(arr) / sizeof(arr[0])-1, sizeof(char), compare);printf("\n排序后:");printf("%s", arr);return 0;
}
运行结果

3f4ebc3cb2844cdab955ac22b1907537.png

对浮点型数据排序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void* a, const void* b)
{if (*(float*)a < *(float*)b) return -1;if (*(float*)a == *(float*)b) return 0;if (*(float*)a > *(float*)b) return 1;
}int main()
{float arr[] = { 3.1,5.4,7.9,10.31,6.66,1.1,0.9 };printf("排序前:");for (int i = 0;i < sizeof(arr) / sizeof(arr[0]); i++)printf("%.2f ", arr[i]);qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof(float), compare);printf("\n排序后:");for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)printf("%.2f ", arr[i]);return 0;
}
运行结果

cac8b425b53a41b7ae76555a296d09aa.png

2.题外话:函数名的本质

在解释qsort函数的时候提到了"函数本身也可以作为另一个函数的参数"

测试以下代码,下断点至return 0;然后执行到断点处

#include <stdio.h>
#include <stdlib.h>
int compare(const void* a, const void* b)
{if (*(float*)a < *(float*)b) return -1;if (*(float*)a == *(float*)b) return 0;if (*(float*)a > *(float*)b) return 1;
}int main()
{printf("%p", compare);return 0;
}

12854dc24f8f44e4958883ba0aa97652.png

 查看打印结果

2377e22eb1474ed38691ed18343b81f9.png

在内存窗口中输入0x00C613FC后发现内存窗口直接跳到了0x00C61900;转到反汇编,查看compare函数的第一个指令的机器码和地址

77ca1643215e4c8ba975941c889a1154.png

因此函数名的本质是地址,其指向函数反汇编的第一条指令

http://www.yayakq.cn/news/924919/

相关文章:

  • 有人拉我做彩票网站网站缩放代码
  • 手机便宜的网站建设在线学习建设网站
  • 辽宁省电力建设网站3d效果图什么网站做的好
  • 图片上传 网站建设教学视频晚上必看正能量网站短视频
  • 免费在线做高考试题的网站wordpress编辑空两格
  • 用vs2010做网站论文郴州网站制作公司电话
  • php网站开发说明文档制作一个网站怎么做的
  • 西安代做网站知名品牌vi设计案例分析
  • 山西定制网站建设电源网站关键词排行查询
  • 网站怎么做下载公司官网登录入口
  • 做网站需要提供哪些信息wordpress菜单不现实
  • 云南城乡建设网站做网站 怎么样找客户
  • 网站正在建设源代码众筹网站建设费用
  • 公司网站的建设要注意什么外贸上哪个网站开发客户
  • wordpress category order 失效seo营销技巧
  • 建设网站产品图片显示不全阿里云虚拟主机网站建设
  • 建筑工程网站哪个好wordpress相册插件中文版
  • 文山州建设局信息网站天元建设集团有限公司济南六公司
  • 自动发货网站怎么做wordpress同城插件
  • 广东网站建设企业商城网站建设公司地址
  • 做淘宝导购网站全屏网站 图片优化
  • mvc5网站开发实战详解做网站平台的注册什么商标
  • dw做的静态网站怎么分享链接seo标签优化方法
  • 做网站入什么会计科目wordpress 手动更新
  • 企业网站下载加查网站建设
  • 江苏工程建设信息网站关键词优化公司费用多少
  • 注册网站的公司名字小门户网站模版
  • 什么网站可以做十万的分期济南突然宣布
  • 2018做网站兰州网站制作
  • 免费建设钓鱼网站平台网站营销推广公司