- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
**指针变量的定义与引用制作人:涂小琴学习目标:掌握各种类型指针的定义、初始化;掌握指针的使用方法;理解指针的概念。重点:变量的地址和指针概念的建立,指针变量的定义和引用难点:指针概念及指针变量的引用指针变量:是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。指针变量就是存放地址的变量。指针:就是地址,就像我们学过的整型、实型等数据类型一样,指针也是一种数据类型。指针与指针变量的概念1图1内存示意图2内存是计算机用于存储数据的存储器,以一个字节作为存储单元,为了便于访问,给每个字节单元一个唯一的编号,第一字节单元编号为0,以后各单元按顺序连续编号,这些单元编号即称为内存单元的地址。3内存地址:内存中存储单元的编号内存变量的地址图2:变量在内存中的表示inta=5;变量a在内存中占了两个字节的存储空间,2000是这段空间的首地址,那么2000就是变量a在内存中的地址。那么程序是怎样访问变量a的呢?首先,程序必须知道变量a的地址。这就又提出了一个新的问题,变量a的地址放在哪里,在程序中又是怎样表示的?图3指针和指针变量的关系01指针变量p在内存中也占有一个空间,指针变量名p就是这个空间的名称,这个空间里存放的不是普通的值,而是一个地址值。从图中可以看出,这个地址是变量a在内存中的位置。所以我们就说这个地址或者说这个指针指向整型变量a,也可以说是指针变量p指向整型变量a。02指针和指针变量直接访问:是指在程序执行过程中需要访问变量值时,直接存取变量所占内存单元中的内容。间接访问:将变量的地址存放在一种特殊变量中,利用这个特殊变量进行访问。说明:用变量名对变量的访问也属于直接访问,因为在编译后,变量名和变量地址之间有对应关系,对变量名的访问系统自动转换成利用地址对变量的访问。图4:直接访问图5:间接访问变量的访问方式为表示指针变量和它指向的变量之间的关系,在C语言中,用指针标示符“*”表示“指向”,反映指针变量与它所指向的变量之间的联系。指针变量的定义仍遵循先定义后使用的原则,定义指针变量与前面介绍的变量定义形式相似,都是用说明语句来实现,定义时应指明指针变量的类型及变量名。数据类型标识符*指针变量名;float*q;其定义形式为:如:int*p;/*定义了一个指向整型变量的指针变量p*/double*d;指针变量的定义01在定义指针变量时同时给该变量一个初始值,称为指针变量初始化。02例如:03inta=20;04int*pa;05pa=a;(为取地址符)指针变量的初始化指针变量名前的“*”表示该变量为指针变量,而指针变量名不包含该“*”。01一个指针变量只能指向同一类型的变量。02指针变量中只能存放地址,而不能将数值型数据赋给指针变量。03只有当指针变量中具有确定地址后才能被引用。04指针变量的几点说明例1.输出变量的值main(){inta=18;int*p=a;printf(“a=%d\n”,a);printf(“*p=%d\n”,*p);/*输出指针变量p指向的目标的值*/}程序运行结果:a=18*p=18两个输出语句输出的结果相同,说明指针变量p所指向的目标就是整型变量a。指针变量的引用对指针变量的引用包含两个方面:一是对指针变量本身的引用,如对指针变量进行各种运算;二是利用指针变量来访问所指向的目标,对指针的间接引用。与指针相关的两个运算符:(1):取地址运算符(2)*:指针运算符,取其指向的内容指针指向的对象可以表示成如下形式:*指针变量特别要注意的是,此处*是访问指针所指向变量的运算符,与指针定义时的*不同。在定义指针变量时,*号表示其后是指针变量。在其它位置出现,*号是运算符。如果与其联系的操作数是指针类型,*是间接访问(引用)运算符;如果与其联系的操作数是基本类型,*是乘法运算符。在使用和阅读程序时要严格区分*号的含义。**
文档评论(0)