模块5_指针及应用.ppt

模块5_指针及应用.ppt

ID:48089480

大小:1.01 MB

页数:183页

时间:2020-01-11

模块5_指针及应用.ppt_第1页
模块5_指针及应用.ppt_第2页
模块5_指针及应用.ppt_第3页
模块5_指针及应用.ppt_第4页
模块5_指针及应用.ppt_第5页
资源描述:

《模块5_指针及应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用C语言程序设计教程李金祥顾小晶主编VisualC++模块5指针及应用任务1地址与指针学习目标了解指针与地址的概念、掌握指针变量的定义、初始化及指针的运算。案例一指针与地址1.问题描述程序在计算机中运行的时候,所有数据都存放在内存中。而内存以字节为存储单元存放数据,不同的数据类型所占用的单元数不等。如整型占用2个单元,字符占用1个单元等。请编程验证计算机是如何存取需要的数据的。5.1.1案例讲解2.编程分析为了正确访问内存单元,计算机系统为每个内存单元进行编号,然后根据一个内存单元的编号准确地找到该内存单元。内存单元的编号也叫做地址。既然根据内存单元的地

2、址就可以找到所需的内存单元,因此通常也把这个地址称为指针。要解决上面的问题,最好的办法是定义一组连续存储的变量,然后列出各变量的存储地址和值,从而得到它们的存储空间。程序描述如下:main(){定义字符型变量charA定义整型变量intB定义长整型变量longC,longD输出charA的地址和值输出intB的地址和值输出longC、longD的地址和值}3.编写源程序/*EX5_1.C*/#includemain(){charcharA='A';intintB=1;longlongC=2,longD=4;printf("charA的地址

3、:%X,",&charA);/*以十六进制形式输出charA的地址*/printf("charA的值:%c",charA);printf("intB的地址:%X,",&intB);printf("intB的值:%d",intB);printf("longC的地址:%X,",&longC);printf("longC的值:%d",longC);printf("longD的地址:%X,",&longD);printf("longD的值:%d",longD);}4.运行结果如图5-1所示。图5-1案例1运行结果5.归纳分析(1)系统根据变量的数据

4、类型,分别为charA、intB、longC和longD分配1个、2个、4个和4个字节的存储单元,此时变量所占存储单元的第一个字节的地址就是该变量的地址。在图5-1中,变量charA的地址是12FF7C,intB的地址是12FF78,longC的地址是12FF74,longD的地址是12FF70。图5-2给出了案例1一次运行的内存存储示意。图5-2案例1内存存储示意图(2)在C语言中通过“&”获得数据的地址,“&”称为取地址运算符。因此,案例1中的语句printf("charA的地址:%x,",&charA);的作用就是输出变量charA的地址。(3)通过

5、变量名访问数据时,系统自动完成变量名与存储地址的转换,这种访问形式称为“直接访问”。此外,C语言中还有一种称为“间接访问”的形式。它首先将变量的存储地址存入另一个变量中,这个存放地址的变量称为指针变量,然后通过指针变量去访问先前的变量。这时,我们可以说指针变量指向那个变量。这种访问形式类似于打电话时的呼叫转移。案例二指针变量1.问题描述从键盘输入a和b两个整数,按先大后小的顺序输出a和b。2.编程分析从键盘输入a和b两个整数后最好不要改变它们本身的值,因为其它程序中可能还会使用到这些原始数据。比较好的做法是根据我们的需要给原始数据做上“标志”:将较大的数标

6、识为pMax,较小的数标识为pMin。这样在输出时可以根据做好的标志来输出。这种形式类似于给别人取外号。程序描述如下:main(){定义变量a、b定义指针变量pMax、pMin、pTemp从键盘输入两个整数给a、b令pMax指向a、pMin指向b如果pMax指向的值小于pMin指向的值,利用pTemp将pMax、pMin交换输出a、b的值输出pMax指向的值、pMin指向的值}3.编写源程序/*EX5_2.C*/#includemain(){inta,b;int*pMax,*pMin,*pTemp;printf("请输入两个整数a,b:"

7、);scanf("%d,%d",&a,&b);pMax=&a;pMin=&b;if(*pMax<*pMin){pTemp=pMax;pMax=pMin;pMin=pTemp;}printf("a=%d,b=%d",a,b);printf("max=%d,min=%d",*pMax,*pMin);}4.运行结果如图5-3所示。图5-3案例2运行结果5.归纳分析(1)严格地说,指针是一个地址,是一个常量。而用来存放地址的指针变量却可以被赋予不同的指针值,是变量。但有时也会把指针变量简称为指针。为了避免混淆,本书约定:“指针”是指地址,是常量,“指针

8、变量”是指取值为地址的变量。定义指针变量的目的是为了通过指针变量去

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

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

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