- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指针进阶 qsort函数 二维数组与指针 指针数组与字符串处理 带参main()函数 指向函数的指针 qsort()函数 排序是最常用的预处理技术 qsort包含在stdlib.h头文件中 函数根据你给的比较条件进行快速排序 排序之后的结果仍然放在原数组中 使用qsort函数必须自己写一个比较函数。 qsort()函数使用 函数原型 void qsort ( void *base, int n, int size, int *cmp ); 数组名base,数组元素个数n,每个元素的字节数size,比较函数指针cmp cmp的函数原型 int cmp( const void *, const void * ) cmp函数指针功能是返回相邻两个元素的序关系,若符合正序关系,则返回一个负数;若二者逆序,返回一个正数。 例如要元素进行升序排列,则定义cmp所指向的函数为:如果其第一个参数比第二个参数小,则返回一个小于0的值,反之则返回一个大于0的值,如果相等,则返 回0。 一、对整型数组排序 Int main() { int a[10]={4,2,7,3,6,1,5}; int i,n=7; qsort(a, n,sizeof(a[0]),cmp); for(i=0;in;i++) printf(“%d “,a[i]); } 整型数组排序练习 输入n和n个整数,先升序输出,再降序输出,最后按绝对值升序输出。 二、对char类型数组排序(同int类型) Int main() { char str[10]=“gjlfjsder”; int i,n; n=strlen(str); qsort(a, n,sizeof(a[0]),cmp); puts(str); } 三、对double类型数组排序 Int main() { double a[10]={5, 2.5, 1.3, 3.2}; int i,n=4; qsort(a, n,sizeof(a[0]),cmp); for(i=0;in;i++) printf(“%.2f “,a[i]);} 7.4 指针与二维数组 关于数组的两个事实: (1)c语言只有一维数组,而数组的元素可以是任何类型的对象,比如是一个数组。 (2)对于数组,我们只能做两件事:获取数组的大小、获取下标为0的元素的地址。 有关数组的所有操作,都是通过指针进行的,虽然看似是通过下标进行的。 数组名a代表下标为0的元素的地址,但不仅仅如此 #includestdio.h int main() { double a[4]={1,2,3,4}; double* p; p= a; //或p=a[0]; printf(数组a的所占字节数sizeof(a):%d\n,sizeof(a)); printf(指针变量p的所占字节数sizeof(p):%d\n,sizeof(p)); printf(指针p所指变量的字节数sizeof(*p):%d\n, sizeof(*p)); return 0; } 下标运算的本质 二维数组的本质 7.4.1用一级指针访问多维数组 上例中能否把二维数组名a赋给p? 求数组a中所有元素的累加和 int a[3][3]={1,2,3,4,5,6,7,8,9,} int i, sum=0; int* p; p=a[0][0]; //能否写成p=a? for(i=0;in;i++) for(j=0;in;j++) sum=sum+*(p+i*n+j); 7.4.2 二维数组的指针 1. 指向指针的指针(二级指针) 类型名** 变量名 int a = 10; int* p = a; int** dp = p; 2. 二维数组的指针 ⑴ 二维数组的地址 例如:int a[3][4]; ① 二维数组名a是数组的首地址。 ② 二维数组a包含三个行元素:a[0]、a[1]、a[2] 。 a[0]、a[1]、a[2]是一维数组名 所以a[i]+j是数组元素a[i][j]的地址。 数组元素可用下列形式表示: a[i][j]、*(a[i]+j)、*(*(a+i)+j) (4)指向一维数组的指针变量 (注意:是指向数组,不是指向数组元素 【例7.14】用指向一维数组的指针变量输出数组元素。 main( ) { int a[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}}; int (*lp)[4], i, j; for (lp=a, i=0; i3; i++)
您可能关注的文档
- 第2篇 色谱分析法基础-1.ppt
- 第3节集成运算放大器第2讲.ppt
- 第2章 二元合金的相图与结晶.ppt
- 第2篇+物理层.ppt
- 第2章:农业生态系统的生物和环境(要点).ppt
- 第3篇 电参量检测装置.ppt
- 第3篇 网络扫描.ppt
- 第3节 发动机速度特性.ppt
- 第3章 不饱与烃:烯烃与炔烃.ppt
- 第2章 生命物质基础.ppt
- 上海市宝山区2025-2026学年第一学期期末考试高三英语试卷(含答案).pdf
- 云南省普洱市镇沅县第一中学2025-2026学年高二上学期期中考试语文试题(含答案).pdf
- 天津市扶轮中学2025-2026学年高一上学期第一次月考英语试题(含答案).pdf
- 上海市杨浦区2026届高三一模英语试题(含答案).pdf
- 湖北省八校联考2025-2026学年高二上学期月考语文试题(含答案).pdf
- 山西省介休市第一中学校2025-2026学年高二上学期期中考试英语试卷(含答案,无听力原文及音频).pdf
- 江苏省无锡市梅村高级中学2025-2026学年高二上学期期中英语试题(含答案).pdf
- 山东省临沂市临沭县2025-2026学年九年级(上)期中化学试卷(含答案).pdf
- 山东省菏泽市2025-2026学年高二上学期期中考试英语(B)试卷(含答案,无听力原文及音频).pdf
- IPO审核耗时与首发股票市场表现.pdf
最近下载
- 精品课件-《菩萨蛮·书江西造口壁》(优质课课件用).ppt VIP
- 应用高等数学(第2版)练习册胡桐春课后习题答案解析.docx VIP
- 2025年连云港专业技术人员公共课程公需考试-学习贯彻党的二十届三中全会精神.docx VIP
- 标准作业流程心得体会范文.docx VIP
- DBJT 61-38-2016 建筑给水排水与采暖工程施工工艺标准.docx VIP
- 尿液干化学法检测尿液红细胞与白细胞假阴性结果分析.doc VIP
- 皖南医学院《马克思主义基本原理》2016-2017学年期末考试卷.pdf VIP
- 2023年四川省气象部门事业单位招聘考试真题.docx VIP
- 简约手绘工作概述商务汇报通用PPT模板.pdf VIP
- 2023年四川省气象部门事业单位招聘考试真题.docx VIP
原创力文档


文档评论(0)