指针变量的定义与引用

指针变量的定义与引用

ID:39513369

大小:2.32 MB

页数:16页

时间:2019-07-04

指针变量的定义与引用_第1页
指针变量的定义与引用_第2页
指针变量的定义与引用_第3页
指针变量的定义与引用_第4页
指针变量的定义与引用_第5页
资源描述:

《指针变量的定义与引用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、指针变量的定义与引用制作人:涂小琴学习目标:掌握各种类型指针的定义、初始化;掌握指针的使用方法;理解指针的概念。重点:变量的地址和指针概念的建立,指针变量的定义和引用难点:指针概念及指针变量的引用指针:就是地址,就像我们学过的整型、实型等数据类型一样,指针也是一种数据类型。指针变量:是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。指针变量就是存放地址的变量。指针与指针变量的概念内存图1内存示意图内存是计算机用于存储数据的存储器,以一个字节作为存储单元,为了便于访问,给每个字节单元一个唯一的编号,第一字节单元编号为0,以后各单元按顺序连续编

2、号,这些单元编号即称为内存单元的地址。内存地址:内存中存储单元的编号图2:变量在内存中的表示inta=5;变量的地址变量a在内存中占了两个字节的存储空间,2000是这段空间的首地址,那么2000就是变量a在内存中的地址。那么程序是怎样访问变量a的呢?首先,程序必须知道变量a的地址。这就又提出了一个新的问题,变量a的地址放在哪里,在程序中又是怎样表示的?图3指针和指针变量的关系指针变量p在内存中也占有一个空间,指针变量名p就是这个空间的名称,这个空间里存放的不是普通的值,而是一个地址值。从图中可以看出,这个地址是变量a在内存中的位置。所以我们就说这个地址

3、或者说这个指针指向整型变量a,也可以说是指针变量p指向整型变量a。指针和指针变量变量的访问方式直接访问:是指在程序执行过程中需要访问变量值时,直接存取变量所占内存单元中的内容。间接访问:将变量的地址存放在一种特殊变量中,利用这个特殊变量进行访问。说明:用变量名对变量的访问也属于直接访问,因为在编译后,变量名和变量地址之间有对应关系,对变量名的访问系统自动转换成利用地址对变量的访问。图4:直接访问图5:间接访问指针变量的定义为表示指针变量和它指向的变量之间的关系,在C语言中,用指针标示符“*”表示“指向”,反映指针变量与它所指向的变量之间的联系。指针变量

4、的定义仍遵循先定义后使用的原则,定义指针变量与前面介绍的变量定义形式相似,都是用说明语句来实现,定义时应指明指针变量的类型及变量名。其定义形式为:数据类型标识符*指针变量名;如:int*p;/*定义了一个指向整型变量的指针变量p*/float*q;double*d;在定义指针变量时同时给该变量一个初始值,称为指针变量初始化。例如:inta=20;int*pa;pa=&a;(&为取地址符)指针变量的初始化(1)指针变量名前的“*”表示该变量为指针变量,而指针变量名不包含该“*”。(2)一个指针变量只能指向同一类型的变量。(3)指针变量中只能存放地址,而不

5、能将数值型数据赋给指针变量。(4)只有当指针变量中具有确定地址后才能被引用。指针变量的几点说明main(){inta=18;int*p=&a;printf(“a=%d”,a);printf(“*p=%d”,*p);/*输出指针变量p指向的目标的值*/}程序运行结果:a=18*p=18两个输出语句输出的结果相同,说明指针变量p所指向的目标就是整型变量a。例1.输出变量的值对指针变量的引用包含两个方面:一是对指针变量本身的引用,如对指针变量进行各种运算;二是利用指针变量来访问所指向的目标,对指针的间接引用。与指针相关的两个运算符:(1)&:取地址运

6、算符(2)*:指针运算符,取其指向的内容指针指向的对象可以表示成如下形式:*指针变量特别要注意的是,此处*是访问指针所指向变量的运算符,与指针定义时的*不同。在定义指针变量时,*号表示其后是指针变量。在其它位置出现,*号是运算符。如果与其联系的操作数是指针类型,*是间接访问(引用)运算符;如果与其联系的操作数是基本类型,*是乘法运算符。在使用和阅读程序时要严格区分*号的含义。指针变量的引用若有定义:inta=8;int﹡p=&a;说明指针变量p指向整型变量a,a是p指向的目标,可以用*p来引用a,*p与a是等价的,因此,*p可以像普通变量一样使用。注意

7、:*与&具有相同的优先级,结合方向为从右到左。这样&*p即&(*p)是对变量*p取地址,它与&a是等价的。p与&(*p)等价,a与*(&a),a与*p等价。例2:输入两个整数,按从大到小顺序输出main(){inta,b,*p1,*p2,*p;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;if(a

8、min=5p&ap15a&bp29bp&bp15a&ap29b说明:int*pi,pj;该“*

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

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

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