lesson17数据的组织结构二指针概念

上传人:陈** 文档编号:182414725 上传时间:2023-01-23 格式:PPTX 页数:34 大小:450.60KB
收藏 版权申诉 举报 下载
lesson17数据的组织结构二指针概念_第1页
第1页 / 共34页
lesson17数据的组织结构二指针概念_第2页
第2页 / 共34页
lesson17数据的组织结构二指针概念_第3页
第3页 / 共34页
资源描述:

《lesson17数据的组织结构二指针概念》由会员分享,可在线阅读,更多相关《lesson17数据的组织结构二指针概念(34页珍藏版)》请在装配图网上搜索。

1、2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作学习目标学习目标:3 1掌握指针概念掌握指针概念2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作引例引例#include void swap(int*a,int*b)int t;t=*a;*a=*b;*b=t;return;int main()int x,y;scanf(%d%d,&x,&y);printf(交换前交换前:%5d,%5dn,x,y);swap(&x,&y);printf(交换后交换后:%5d,%

2、5dn,x,y);return 0;2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作分析分析栈区栈区mainswapx:1y:4调用调用swapab执行执行:t=*a;*a=*b;*b=t;tx:1y:2结论结论:通过通过a,b 找到了找到了main中的中的x和和y,使其交换了使其交换了!2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3地址地址2内存内存int x,y;变量变量y变量变量x2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3地址地址2找到找到x,y的方法:的方法:1、通过名字找、通过名字找

3、2、通过位置找、通过位置找如在电影院找人如在电影院找人2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3地址地址2程序中:int i;float k;内存中每个字节有一个编号内存中每个字节有一个编号-地址地址.2000200120022005内存内存02003ik 编译或函数调用时为编译或函数调用时为其分配内存单元其分配内存单元200420062007 变量地址:变量所占字节的第一个地址 变量i的地址是:2000变量k的地址是:20042023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3地址地址2如何得到变量的地址?如何得到变量的地址?

4、&运算符运算符:取变量的地址取变量的地址如果在程序中有变量如果在程序中有变量x:&x则表示则表示x的地址的地址例例1:观察程序观察程序:#include int main()int x;printf(“x=%d,&x=%d”,x,&x);return 0;lesson17_01.c2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3地址地址2如何表示地址如何表示地址 指针类型指针类型 指针类型是指针类型是C语言提供的一种特殊的基本数语言提供的一种特殊的基本数据类型据类型,表示变量的地址。表示变量的地址。指针类型变量中存放的不是待操作的数据,指针类型变量中存放的不是待

5、操作的数据,而是那些待操作数据而是那些待操作数据(变量变量)的存储地址。的存储地址。2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3地址地址2如何保存变量的地址?如何保存变量的地址?定义相应变量保存定义相应变量保存-如果一个变量用来保如果一个变量用来保存另一个变量的地址存另一个变量的地址,叫叫指针变量指针变量定义方法定义方法:类型名类型名 *指针变量名指针变量名例例:int*pi;float*pf;该变量可以放哪种类型的变量的地址 标志,表示后面的变量是一个指针变量 变量的名字,必须是合法标志符2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计

6、算机系制作3指针指针3使用指针变量保存变量的地址使用指针变量保存变量的地址int x=0,y=7;int*p;p=&x;20000 xp2000p指向变量指向变量x所以地址也叫做指针所以地址也叫做指针!2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针指针3访问变量的第二种方法访问变量的第二种方法*运算符运算符:指针所指向的变量指针所指向的变量例例2:观察程序观察程序:#include int main()int x=0;int*p;p=&x;*p+=1;printf(“x=%d,*p=%d”,x,*p);0 x2000pp指向变量x2000*p就是就是xle

7、sson17_02.c2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针指针3 指针与指针所指变量的关系 *intptr intptr 指指针针 指指针针所所指指变变量量 例如:例如:int *intptr,a;intptr=&a;*intptr=30;scanf(“%d”,intptr);printf(“%d”,*intptr);2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针指针3 指针与结构体变量的关系 struct point_type int x;/*x坐标坐标*/int y;/*y坐标坐标*/;struct po

8、int_type *p;/*定义结构体类型的指针定义结构体类型的指针*/struct point_type point;/*定义结构体的变量定义结构体的变量*/point.x=2;point.y=5;p=&point;25pointp2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针指针3 通过指针访问结构体变量的方法struct point_type *p;/*定义结构体类型的指针定义结构体类型的指针*/struct point_type point;/*定义结构体的变量定义结构体的变量*/p=&point;25pointp方法方法1:(*p).x=10;方

9、法方法2:p-y=20;10202023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针指针3指针的应用指针的应用例例3:从键盘输入两个数从键盘输入两个数,按从大到小输出按从大到小输出2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针指针3第一种方法第一种方法:#include int main()int a,b,t;scanf(“%d%d”,&a,&b);if(ab)t=a;a=b;b=t;printf(“%d,%dn”,a,b);return 0;1ab221lesson17_03_1.c2023-1-23电气与信息工程学院计算

10、机系制作电气与信息工程学院计算机系制作3指针指针3第二种方法第二种方法:#include int main()int a,b;int*p1,*p2;scanf(“%d%d”,&a,&b);if(ab)p1=&b;p2=&a;else p1=&a;p2=&b;printf(“%d,%dn”,*p1,*p2);return 0;1ab21p1p22lesson17_03_2.c2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3课堂练习课堂练习4使用指针的方法,从键盘输入三个数使用指针的方法,从键盘输入三个数,输出输出最大值最大值2023-1-23电气与信息工程学院计算

11、机系制作电气与信息工程学院计算机系制作3指针操作指针操作5 指针的基本操作指针的基本操作 l指针的初始化指针的初始化 int *ptr1=&value;int *ptr2=NULL;vNULL是一个特殊的值,是在是一个特殊的值,是在stdio.h文件中定文件中定义的一个符号常量义的一个符号常量#define NULL 0v它表示目前指针没有指向任何变量,通常将这它表示目前指针没有指向任何变量,通常将这种状态称为种状态称为“空空”指针。指针。2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针操作指针操作5 指针的基本操作指针的基本操作 l指针的赋值指针的赋值pt

12、r2=ptr1;可以将一个指针赋给另一个基类型相同可以将一个指针赋给另一个基类型相同的指针,其含义是两个指针在同一时刻的指针,其含义是两个指针在同一时刻指向同一个变量。指向同一个变量。2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针操作指针操作5l指针的比较指针的比较 用来判断两个指针在同一时刻是否指向同一个用来判断两个指针在同一时刻是否指向同一个变量,或者判断某个指针是否为变量,或者判断某个指针是否为“空空”。例如例如 if(ptr1=NULL)return;l指针的加减指针的加减 指针和指针可以相减指针和指针可以相减 ptr1-ptr2;指针可以和整数相

13、加、减指针可以和整数相加、减 ptr1+1;在利用指针访问数组元素的时候,应用这种操在利用指针访问数组元素的时候,应用这种操作移动指针十分便捷作移动指针十分便捷。NULL是已经定义好的一个常量是已经定义好的一个常量就是就是02023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6数组名的含义数组名的含义int a 102000200420082012201620202024202820322036a0a1a2a3a4a5a6a7a8a9各元素地址:各元素地址:数组名首元素的地址数组名首元素的地址a表示表示a0的地的地址:即址:即a的值为的值

14、为20002023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6例例4:观察程序结果观察程序结果#include int main()int a10=1,2,3,4,5,6,7,8,9,0;printf(“a=%d,&a0=%dn”,a,&a0);printf(“a0=%d,*a=%dn”,a0,*a);return 0;lesson17_04.c2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6int a10;int*p;p=a;pa0a1a2a3a4a5a6a7a8a9200

15、0200420082012201620202024202820322036p=&a0;等价等价*p a0 2000等价等价P是指针变量是指针变量,可以可以保存变量的地址保存变量的地址2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6int a10;int*p;p=a;pa0a1a2a3a4a5a6a7a8a92000200420082012201620202024202820322036p=p+1;20002004p=p+1;不是使不是使p的值加的值加1而是使其指向下而是使其指向下一个变量一个变量(元素元素)2023-1-23电气与信

16、息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6int a10;int*p;p=a;pa0a1a2a3a4a5a6a7a8a9200020042008201220162020202420282032203620002004ai的几种表示方法:的几种表示方法:ai *(a+i)pi *(p+i)2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6 利用指针对数组元素进行操作利用指针对数组元素进行操作l假设有定义:假设有定义:int iarray20,*ptr;ptr=iarray l将数组将数组iarr

17、ay的内容显示输出的内容显示输出方法方法1、for(ptr=iarray,i=0;i20;i+)printf(“%d“,*(ptr+i);方法方法2、for(ptr=iarray;ptriarray+20;ptr+)printf(“%d “,*ptr);2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6 利用指针对数组元素进行操作利用指针对数组元素进行操作l假设有定义:假设有定义:int iarray20,*ptr;ptr=iarray l将数组将数组iarray的内容显示输出的内容显示输出方法方法3、for(i=0;i20;i+)p

18、rintf(“%d“,*(iarray+i);方法方法4、for(ptr=iarray,i=0;i20;i+)printf(“%d “,ptri);2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3指针与一维数组指针与一维数组6例例5:从键盘上输入:从键盘上输入10个数,并输出个数,并输出#include int main()int a10;int i,*p=a;for(i=0;i10;i+)scanf(“%d”,p+i);for(i=0;i10;i+)printf(“%6d”,*(p+i);return 0;lesson17_05.c2023-1-23电气与信息

19、工程学院计算机系制作电气与信息工程学院计算机系制作3课堂练习课堂练习7使用指针的方法,从键盘输入使用指针的方法,从键盘输入10个数,保存个数,保存在数组中,并将其逆序后输出在数组中,并将其逆序后输出2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3课堂练习课堂练习7使用指针的方法,从键盘输入使用指针的方法,从键盘输入10个数,求其个数,求其平均值平均值2023-1-23电气与信息工程学院计算机系制作电气与信息工程学院计算机系制作3课后练习课后练习8编写程序,从键盘输入一个整数,利编写程序,从键盘输入一个整数,利用指针的方法计算其绝对值。用指针的方法计算其绝对值。编

20、写程序,从键盘输入编写程序,从键盘输入10个数,其最个数,其最大值和最小值的差。大值和最小值的差。9、静夜四无邻,荒居旧业贫。23.1.2323.1.23Monday,January 23,202310、雨中黄叶树,灯下白头人。14:44:2214:44:2214:441/23/2023 2:44:22 PM11、以我独沈久,愧君相见频。23.1.2314:44:2214:44Jan-2323-Jan-2312、故人江海别,几度隔山川。14:44:2214:44:2214:44Monday,January 23,202313、乍见翻疑梦,相悲各问年。23.1.2323.1.2314:44:22

21、14:44:22January 23,202314、他乡生白发,旧国见青山。2023年1月23日星期一下午2时44分22秒14:44:2223.1.2315、比不了得就不比,得不到的就不要。2023年1月下午2时44分23.1.2314:44January 23,202316、行动出成果,工作出财富。2023年1月23日星期一14时44分22秒14:44:2223 January 202317、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。下午2时44分22秒下午2时44分14:44:2223.1.239、没有失败,只有暂时停止成功!。23.1.2323.1.23Monda

22、y,January 23,202310、很多事情努力了未必有结果,但是不努力却什么改变也没有。14:44:2214:44:2214:441/23/2023 2:44:22 PM11、成功就是日复一日那一点点小小努力的积累。23.1.2314:44:2214:44Jan-2323-Jan-2312、世间成事,不求其绝对圆满,留一份不足,可得无限完美。14:44:2214:44:2214:44Monday,January 23,202313、不知香积寺,数里入云峰。23.1.2323.1.2314:44:2214:44:22January 23,202314、意志坚强的人能把世界放在手中像泥块一样

23、任意揉捏。2023年1月23日星期一下午2时44分22秒14:44:2223.1.2315、楚塞三湘接,荆门九派通。2023年1月下午2时44分23.1.2314:44January 23,202316、少年十五二十时,步行夺得胡马骑。2023年1月23日星期一14时44分22秒14:44:2223 January 202317、空山新雨后,天气晚来秋。下午2时44分22秒下午2时44分14:44:2223.1.239、杨柳散和风,青山澹吾虑。23.1.2323.1.23Monday,January 23,202310、阅读一切好书如同和过去最杰出的人谈话。14:44:2214:44:2214

24、:441/23/2023 2:44:22 PM11、越是没有本领的就越加自命不凡。23.1.2314:44:2214:44Jan-2323-Jan-2312、越是无能的人,越喜欢挑剔别人的错儿。14:44:2214:44:2214:44Monday,January 23,202313、知人者智,自知者明。胜人者有力,自胜者强。23.1.2323.1.2314:44:2214:44:22January 23,202314、意志坚强的人能把世界放在手中像泥块一样任意揉捏。2023年1月23日星期一下午2时44分22秒14:44:2223.1.2315、最具挑战性的挑战莫过于提升自我。2023年1月

25、下午2时44分23.1.2314:44January 23,202316、业余生活要有意义,不要越轨。2023年1月23日星期一14时44分22秒14:44:2223 January 202317、一个人即使已登上顶峰,也仍要自强不息。下午2时44分22秒下午2时44分14:44:2223.1.23MOMODA POWERPOINTLorem ipsum dolor sit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis amet,consectetur adipiscing elit.Fusce id urna blanditut cursus.感 谢 您 的 下 载 观 看感 谢 您 的 下 载 观 看专家告诉

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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