第8章 指针及其应用

第8章 指针及其应用

ID:44962655

大小:620.00 KB

页数:74页

时间:2019-11-06

第8章 指针及其应用_第1页
第8章 指针及其应用_第2页
第8章 指针及其应用_第3页
第8章 指针及其应用_第4页
第8章 指针及其应用_第5页
资源描述:

《第8章 指针及其应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章 指针及其应用第8章指针及其应用学习目标掌握指针的概念及基本操作,指针在数组和函数中的应用。学习内容指针、指针变量的概念,指针变量定义及使用,指针与一维数组,指针与二维数组,指针与字符串,指针与函数。下一页返回第8章指针及其应用8.1指针的基本用法8.2指针与数组8.3指针与函数8.4指针应用实例8.5本章小结8.6实训上一页返回8.1指针的基本用法8.1.1指针的概念计算机的内存是以字节为单位的一片连续的存储空间,每个字节都有一个编号,这个编号称为内存单元地址。这就如同旅馆的每个房间都有

2、一个房间号一样,如果没有房间号,旅馆的工作人员就无法进行管理,同样没有字节编号,系统就无法对内存单元进行管理。若在程序中定义了一个变量,系统就会根据变量的类型为变量在内存中分配若干字节的存储空间,此后这个变量的单元地址也就确定了。有了变量的地址,就可以立即找到该变量所在的存储单元并进行数据的存取操作。这种通过变量地址存取变量值的方式称为变量的直接访问。程序中通常是通过变量名对变量进行访问,因为变量名是变量的符号地址,它与单元物理地址之间的联系由系统自动建立。提示:注意区分变量的地址和变量的值这两

3、个概念。下一页返回8.1指针的基本用法存储单元地址惟一地对应着(或指向)存储单元,因此C语言将存储单元地址形象地称为"指针"。前面学习的变量,都是用来存放基本类型数据的,如存放整数或实数等,这些变量称为简单变量。在C语言中,还可以定义一种特殊的变量,这种变量专门用来存放另一个变量的地址(即指针),称为指针变量。如果p是指针变量,而且p中存放着变量a的地址,则称p指向a,常用图8-1所示的形式表示。那么可以通过指针变量p引用它所指向的变量a,这种变量访问方式称为变量的间接访问。本章主要介绍的内容就

4、是变量的间接访问。下一页返回上一页8.1指针的基本用法8.1.2指针变量的定义和使用1.指针变量的定义任何变量在使用前都必须定义,指针变量也一样。指针变量的一般定义形式为:基类型名*指针变量名;例如:int*p1,*p2;说明:(1)定义了两个指针变量,变量名为p1和p2,这两个变量只能用来存放地址。(2)*是一个说明符用来说明定义的是指针变量,定义指针变量时必须有。(3)基类型表示指针变量所指向的变量的类型,也就是说,p1、p2中只能存放整型变量的地址。下一页返回上一页8.1指针的基本用法2.

5、指针变量的使用(1)运算符“&”和“*”运算符“&”为取地址运算符,后跟一个变量,表示取变量的地址。比如,&a表示变量a的地址。运算符“*”为间接访问运算符,后跟一个指针变量,表示取这个指针变量所指向的变量的值。(2)指针变量的赋值通过给指针变量赋地址值,可以让指针变量指向某个变量。例如有以下定义和语句:inta,b,*pa,*pb;pa=&a;/*指针变量pa指向变量a*/pb=&b;/*指针变量pb指向变量b*/下一页返回上一页8.1指针的基本用法下面的定义和语句是错误的:floatx;in

6、t*p;p=&x;错误原因是x的类型和p的基类型不一致。(3)通过指针变量引用变量例如,有以下定义和语句:inti,j,*p;p=&i;*p=10;/*将10赋给p所指向的变量即变量i,等价于赋值语句i=10;*/下一页返回上一页8.1指针的基本用法j=*p+1;/*取指针变量p所指向的存储单元中的值加1后赋给变量j,j的值为11*/*p=*p+1;/*取指针变量p所指向的存储单元中的值,加1后再放入p所指向的存储单元中,也就是使变量i的值增1变为11*/小测验inta=11,b=22,*pa,

7、*pb;pa=&a;pb=&b;在上面程序段的基础上,执行语句pa=pb;和执行语句*pa=*pb;有什么不同?下一页返回上一页8.1指针的基本用法【例8-1】通过指针变量访问整型变量。【程序代码】#includevoidmain(){inti,j,*pi;/*定义整型变量i和j,指针变量pi*/i=10;pi=&i;/*使指针变量p指向变量i*/j=*pi+5;/*通过指针变量访问变量i,等价于j=i+5;*/printf("%d",i);printf("%d,%d"

8、,*pi,j);}下一页返回上一页8.1指针的基本用法程序运行结果:【例8-2】从键盘上输入任意三个实数,利用指针的方法将这三个实数按大小进行排序。【编程思路】(1)输入3个实数分别放到变量a、b、c中。(2)3个指针变量p1、p2、p3分别指向变量a、b、c。(3)比较变量的值,最终使p1指向最大值,p3指向最小值。(4)按顺序输出p1、p2、p3所指向的变量的值。下一页返回上一页8.1指针的基本用法【程序代码】#includevoidmain(){floata,b,c,*p

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

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

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