C语言程序设计第8章.ppt

C语言程序设计第8章.ppt

ID:51643592

大小:697.00 KB

页数:58页

时间:2020-03-27

C语言程序设计第8章.ppt_第1页
C语言程序设计第8章.ppt_第2页
C语言程序设计第8章.ppt_第3页
C语言程序设计第8章.ppt_第4页
C语言程序设计第8章.ppt_第5页
资源描述:

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

1、C语言程序设计第8章指针及其应用学习目标掌握指针的概念及基本操作,指针在数组和函数中的应用。学习内容指针、指针变量的概念、指针变量定义及使用指针与一维数组指针与二维数组指针与字符串指针与函数8.1指针的基本用法8.1.1指针的概念计算机的内存是以字节为单位的一片连续的存储空间,每个字节都有一个编号,这个编号称为内存单元地址。若在程序中定义了一个变量,系统就会根据变量的类型为变量在内存中分配若干字节的存储空间,此后这个变量的单元地址也就确定了。有了变量的地址,就可以立即找到该变量所在的存储单元并进行数据的存取操作。程序中常是通过变量名对变量进行访问,因为变量名是

2、变量的符号地址,它与单元物理地址之间的联系由系统自动建立。存储单元地址惟一地对应着(或指向)存储单元,因此C语言将存储单元地址形象地称为“指针”。专门用来存放另一个变量的地址(即指针)的变量,称为指针变量。如果p是指针变量,而且p中存放着变量a的地址,则称p指向a,如图示:变量aP8.1.2指针变量的定义和使用指针变量的定义一般定义形式为:例如:int*p1,*p2;基类型名*指针变量名;说明:(1)定义了两个指针变量,变量名为p1和p2,这两个变量只能用来存放地址。(2)*是一个说明符用来说明定义的是指针变量,定义指针变量时必须有。(3)基类型表示指针变量所

3、指向的变量的类型,也就是说,p1、p2中只能存放整型变量的地址。指针变量的使用(1)运算符“&”和“*”运算符“&”为取地址运算符,后跟一个变量运算符“*”为间接访问运算符,后跟一个指针变量(2)指针变量的赋值通过给指针变量赋地址值,可以让指针变量指向某个变量。例如有以下定义和语句:inta,b,*pa,*pb;pa=&a;/*指针变量pa指向变量a*/pb=&b;/*指针变量pb指向变量b*/下面的定义和语句是错误的:floatx;int*p;p=&x;错误原因是x的类型和p的基类型不一致。(3)通过指针变量引用变量例如,有以下定义和语句:inti,j,*p

4、;p=&i;*p=10;/*将10赋给p所指向的变量即变量i,等价于赋值语句i=10;*/j=*p+1;/*取指针变量p所指向的存储单元中的值加1后赋给变量j,j的值为11*/*p=*p+1;/*取指针变量p所指向的存储单元中的值,加1后再放入p所指向的存储单元中,也就是使变量i的值增1变为11*/小测验inta=11,b=22,*pa,*pb;pa=&a;pb=&b;在上面程序段的基础上,执行语句pa=pb;和执行语句*pa=*pb;有什么不同?【例8-1】通过指针变量访问整型变量。【程序代码】#includevoidmain(){inti

5、,j,*pi;/*定义整型变量i和j,指针变量pi*/i=10;pi=&i;/*使指针变量p指向变量i*/j=*pi+5;/*通过指针变量访问变量i,等价于j=i+5;*/printf("%d",i);printf("%d,%d",*pi,j);}程序运行结果:【例8-2】从键盘上输入任意三个实数,利用指针的方法将这三个实数按大小进行排序。(1)输入3个实数分别放到变量a、b、c中。(2)3个指针变量p1、p2、p3分别指向变量a、b、c。(3)比较变量的值,最终使p1指向最大值,p3指向最小值。(4)按顺序输出p1、p2、p3所指向的变量的值。【编程

6、思路】#includevoidmain(){floata,b,c,*p1,*p2,*p3,*p;printf("请输入3个实数:");scanf("%f,%f,%f",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(a

7、值最大的变量,使指针p3最终指向值最小的变量。8.2指针与数组8.2.1指针与一维数组指针的移动当指针变量指向一串连续的存储单元(即数组)时,可以对指针变量加上或减去一个整数来进行指针的移动和定位。例如有如下语句:inta[5]={10,20,30,40,50},*p,*q;p=&a[0];指针p的指向情况如图所示。在此基础上,随着下面各个语句的执行,指针p和q的指向会发生相应变化。q=p+1;如图(a)所示,使指针变量q指向数组元素a[1]q++;指针后移,指针变量q指向数组元素a[2]q+=2;指针变量q指向数组元素a[4]q--;指针变量q指向数组元素a

8、[3]p++;指针变量p和q的指向如图

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

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

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