(5.9.2)--翻转课补充课件-第18讲-指针(二)--指针和一维数组.ppt

上传人:奉*** 文档编号:96384368 上传时间:2023-11-19 格式:PPT 页数:31 大小:2.14MB
返回 下载 相关 举报
(5.9.2)--翻转课补充课件-第18讲-指针(二)--指针和一维数组.ppt_第1页
第1页 / 共31页
(5.9.2)--翻转课补充课件-第18讲-指针(二)--指针和一维数组.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《(5.9.2)--翻转课补充课件-第18讲-指针(二)--指针和一维数组.ppt》由会员分享,可在线阅读,更多相关《(5.9.2)--翻转课补充课件-第18讲-指针(二)--指针和一维数组.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言程序设计语言程序设计 The C Programming Language 第第18讲讲 指针(二)指针(二)-指针和一维数组指针和一维数组-2-第第18讲讲 指针(二)指针(二)指针和一维数组指针和一维数组使指针变量指向一维数组使指针变量指向一维数组对指针的算术运算对指针的算术运算一维数组名做实参一维数组名做实参作业布置作业布置 一维数组占连续的存储单元一维数组占连续的存储单元 称第一个元素的地址为数组的地址称第一个元素的地址为数组的地址 用数组名表示首地址用数组名表示首地址6.3.16.3.1 使指针变量指向一维数组使指针变量指向一维数组【例例6.4】编写一个使指针变量指向编写一个使

2、指针变量指向一维数组或数组元素的程序。一维数组或数组元素的程序。P175int i,a5;int *p;double b3,*q;apbq0 1 2 3 4p=&a0;或或p=a;q=&b2;或或q=b+2;for(i=0;i5;i+)ai=i;或或*(p+i)=i;printf(%4d,ai);或或*(a+i)printf(n);输出输出 0 1 2 3 4 int i,a5;int *p;double b3,*q;ap bq0 1 2 3 47.0 6.0 5.0p=a;或或p=&a0;q=&b2;或或q=b+2;for(i=0;i p)printf(q大于大于pn);else print

3、f(q不大于不大于pn);输出:输出:q不大于不大于p printf(%dn,q-p);-5 printf(q不大于不大于pn);移动指针时应避免超范围移动指针时应避免超范围 【例例6.6】有有10个元素的数组,完成以个元素的数组,完成以 下功能:下功能:(1)按顺序输出数组中值)按顺序输出数组中值int i,a10=1,2,3,4,5,6,7,8,9,10,*p=a;for(i=0;i10;i+)printf(%4d,*(p+i);printf(n);指针没移动指针没移动 1 2 3 4 5 6 7 8 9 10pqa(2)按逆序重新存放后输出)按逆序重新存放后输出(定义定义t)补充补充 i

4、nt t,*q;q=a+9;while()t=*p;*p=*q;*q=t;p+;q-;t=*p;*p=*q;*q=t;101p+;q-;pq92 pq83 pqt=*p;*p=*q;*q=t;p+;q-;for(p=a;p-a10;p+)printf(%4d,*p);(2)按逆序重新存放后输出)按逆序重新存放后输出(定义变量定义变量t)1 2 3 4 5 6 7 8 9 1010192pq837456p*p p pp*p*p ap=aprintf(%4d,*p);10 9 8 7 6 5 4 3 2 1【例例6.7】假设数组中存放互不相同的假设数组中存放互不相同的10个个 整数,要求输入一个整

5、数,查找整数,要求输入一个整数,查找 与该值相同的数组元素,如果存与该值相同的数组元素,如果存 在,输出其下标值,否则,输出在,输出其下标值,否则,输出 相应信息相应信息(参见参见5.4节)。节)。main()int k=0,*p=NULL,a10=1,2,3,4,5,6,7,8,9,10;printf(Input k:);scanf(%d,&k);for(p=a;p-a 10;p+)printf(%4d,);printf(n);for(p=a;p-a 10;p+)if()break;*pk=*p if()printf(下标值下标值=%dn,p-a);else printf(没找到没找到%dn

6、,k);p-a 10正常退出正常退出 提前退出提前退出 p-a?main()int k=0,*p,a10=1,2,3,4,5,6,7,8,9,10;printf(Input k:);scanf(%d,&k);for(p=a;p-a 10;p+)printf(%4d,);printf(n);for(p=a;p-a 10;p+)if()break;*pk=*p if()printf(下标值下标值=%dn,p-a);else printf(没找到没找到%dn,k);p-a 10请思考:请思考:ap3-22-7.4.1 7.4.1 一维数组名做实参一维数组名做实参【例例7.12】一维数组名做实参的示例

7、一维数组名做实参的示例 P209-23-void myout(int *p,int n);void int i=0;for(i=0;i n;i+)printf(%3d,*(p+i);printf(n);myout(b,10);myout(a,5);int a5=1,2,3,4,5;int b10=1,2,3,4,5,6,7,8,9,10;main()myout(int *p,int n)a0a1a2a3a412345p *p a51 2 3 4 5-24-void myout(int *p,int n);void int i=0;for(i=0;i n;i+)printf(%3d,*(p+i)

8、;printf(n);myout(b,10);myout(a,5);int a5=1,2,3,4,5;int b10=1,2,3,4,5,6,7,8,9,10;main()myout(int *p,int n)10p *p b 1 2 3 4 5 6 7 8 9 101 2 3 4 5 1 2 3 4 5 6 7 8 9 10-25-【例例7.13】用选择法将用选择法将10个数按由小个数按由小 到大的顺序进行排列到大的顺序进行排列 (算法参见(算法参见5.4节)节)-26-void mysort(int p10,int n )int i=0,j=0,k=0,t=0;for(i=0;in-1;i

9、+)k=i;for(j=k+1;jpj)k=j;t=pi;pi=pk;pk=t;等价于等价于int *p-27-void myout(int a ,int n)int*p=NULL;for(p=a;pa+n;p+)printf(%4d,*p);printf(n);等价于等价于int *a指针移动指针移动 -28-main()int a10=10,9,8,2,5,1,7,3,4,6;printf(before:);myout(a,10);mysort(a,10);printf(after:);myout(a,10);-29-作业布置作业布置1.抄写崔武子主编教材抄写崔武子主编教材P172-175 例例6.1至例至例6.42.编写编写我我廖雪峰廖雪峰主编教材中的主编教材中的第第76页第页第1题;第题;第2题为题为选作选作题。参考答案请查看第题。参考答案请查看第179页至页至185页。页。预习预习指针和字符串指针和字符串作业作业-30-上机训练例上机训练例6.1例例6.7完成完成ftp:/10.172.250.252:1161下的下的“实实验验15-指针与数组指针与数组.doc”上机运行上机运行我廖雪峰主编我廖雪峰主编教材第教材第69页的调试页的调试样例样例上机实验(上机实验(第第15次实验次实验)谢谢 谢谢 观观 看!看!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁