C语言程序设计第9章指针进阶ppt课件.ppt

C语言程序设计第9章指针进阶ppt课件.ppt

ID:58885909

大小:512.00 KB

页数:61页

时间:2020-09-30

C语言程序设计第9章指针进阶ppt课件.ppt_第1页
C语言程序设计第9章指针进阶ppt课件.ppt_第2页
C语言程序设计第9章指针进阶ppt课件.ppt_第3页
C语言程序设计第9章指针进阶ppt课件.ppt_第4页
C语言程序设计第9章指针进阶ppt课件.ppt_第5页
资源描述:

《C语言程序设计第9章指针进阶ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章指针进阶学习目标1.掌握指针数组的定义及其应用,了解二级指针的基本概念;2.理解二维数组的指针和指向二维数组的指针变量;3.了解指向函数的指针,理解指针型函数;4.初步了解内存的动态分配和动态回收;5.初步掌握单向链表的建立与访问、在单向链表中插入、删除结点等算法。9.1指针数组9.1.1指针数组的概念指针数组:一个数组的每个元素均为指针类型形式:数据类型*数组名[数组长度];int*pa[3];char*pname[5]={"JiangSu","ShanDong","ZheJiang","GuangXi","AnHui"};指针数组pname字

2、符串pname[0]pname[1]pname[2]pname[3]pname[4]JiangSuShanDongZheJiangGuangXiAnHuipname9.1.2指向指针的指针变量指向指针的指针变量:一个指针变量中存放的是另一个指针变量的地址形式:数据类型**指针变量名;int**p;intx=5,*q=&x;int**p;p=&q;变量、一级指针、二级地址之间的关系示意指针变量q变量x指针变量p&x5&q#includevoidmain(){inta=10,*b,**c;b=&a;c=&b;printf("%d,%d,%

3、d",a,*b,**c);*b=20;/*通过b间接访问a*/printf("%d,%d,%d",a,*b,**c);**c=30;/*通过c间接访问a*/printf("%d,%d,%d",a,*b,**c);}运行结果:10,10,1020,20,2030,30,30&a变量b变量a&b变量c*c**c或*b10(初值)二级指针示意图9.1.3指针数组应用举例编程将若干字符串按字母顺序由小到大排序后输出。#include#include#defineN5/*字符串个数*/voidsort(char*

4、*name,intn);voidprint(char*name[],intn);voidmain(){char*pname[N]={"JiangSu","ShanDong","ZheJiang","GuangXi","AnHui"};printf("beforesorted:");print(pname,N);/*排序前输出各字符串*/sort(pname,N);/*排序*/printf("aftersorted:");print(pname,N);/*排序后输出各字符串*/}voidsort(char*name[],intn){char*pt

5、;inti,j,k;for(i=0;i0)k=j;if(k!=i){pt=name[i];name[i]=name[k];name[k]=pt;}}}voidprint(char**name,intn){inti;for(i=0;i

6、]pname[2]pname[3]pname[4]JiangSuShanDongZheJiangGuangXiAnHui(a)排序前指针数组pname字符串pname[0]pname[1]pname[2]pname[3]pname[4]JiangSuShanDongZheJiangGuangXiAnHui9.2二维数组的指针和 指向二维数组的指针变量9.2.1二维数组的行地址和列地址一、二维数组的行地址ints[3][4];s数组的逻辑结构图s[0][0]s[1][0]s[2][0]s[0][1]s[1][1]s[2][1]s[0][2]s[1][2]

7、s[2][2]s[0][3]s[1][3]s[2][3]s[0]s[1]s[2]ss数组的行地址s[0]s[1]s[2]ss+1s+2*s等于*(s+0)为元素s[0]*(s+1)即为元素s[1]*(s+2)即为元素s[2]由于行地址代表某一行(这一行可以看成是一个一维数组)的地址,而不是某一个元素的地址,故行地址是一个二级指针。例如,s是第0行,即s[0](s[0]可看作是s[0][0]、s[0][1]、s[0][2]、s[0][3]四个元素组成的一维数组的数组名)的地址,s+1表示下一行的地址,即s[1]的地址。二、二维数组的列地址一维数组名代表数

8、组首元素的地址s[0]代表一维数组s[0]中第0列元素的地址(&s[0][0])s[1]代表一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。