- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 指针和引用 6.1 指针基本概念 6.2 指向数组元素的指针 6.3 指针形参 6.4 数组形参 6.1 指针基础概念 指针是C语言的一个重要概念。指针在程序中有以下多方面的作用: (1) 利用指针能间接引用指针所指的对象。 (2) 指针能用来描述数据之间的关系,以便构造复杂数据结构和处理动态数据结构问题。 (3) 利用指针形参,能使函数间接引用调用环境中的变量。 (4) 指针与数组结合,使访问数组元素的方式更加多样、手段更加灵活。 (5) 熟练正确应用指针,能写出紧凑高效的程序。 1. 变量、变量的地址及变量的值 程序在计算机上运行时,程序中的变量会在内存中占据由若干字节组成的一个内存储块,用于存放变量的值。存储块的开始地址称为变量的地址。 程序用变量的名引用变量的值或变量的地址。 例如: int x = 1; x = x + 2; 在代码“x = x+2;”中,赋值号左边的 x 表示将存入变量 x,赋值号右边的 x 表示引用变量 x 的值。该代码的意义是“完成取x的值,加上 2 的计算,并将计算结果存入变量 x 中。” 2. 指针变量和它所指向的变量 取变量地址运算符: 例: x 表示取变量x的地址 说明: 变量的地址也可作为一种值被存储和运算。 除能按名引用变量外,也可利用变量的地址引用变量。按变量名引用变量习惯称为直接引用,而将变量A的地址存于另一变量B中,借助于变量B引用变量A称为对A的间接引用。 指针变量的定义 指针变量:专门用于存放某个变量地址。 一般形式为: 类型 *标识符; 其中, 标识符:指针变量的名,标识符之前的*符号表示该变量是指针变量。 类型: 表示该指针变量能指向的数据类型。 例如, int *ip; float *fp; 说明: 定义指针变量ip和fp,ip能取int类型变量的地址,fp能取float类型变量的地址。 指针变量的定义 例如: int *ip, i = 2; ip = i; 表示:将整型变量i的地址(而非内容)赋给指针变量ip。 使指针变量ip与变量i之间建立如下图所示的关系 (假设分配给变量 i 的内存地址为1000)。 当指针变量 ip 的值为变量 i 的地址时,就说指针变量 ip 指向变量 i 。 指针变量定义时指定初值 例如: int j; int *intpt = j; 表示:在定义 int * 类型指针变量 intpt 时,给它初始化为 int 类型变量 j 的地址,使它指向 j。 指针变量定义-说明 (1) 当定义局部指针变量时,如果未给它指定初值,则它的值是不确定的。 (2) C语言规定 0 地址记为 NULL,即表示空地址。 例如: ip = NULL; 表示:指针变量 ip 为空指针,不指向任何变量。 (3) 指针变量只能取程序对象的地址值,不能将任何其他非地址值赋给指针变量。 (4) 一个指针变量只能指向同一个类型的变量,不能一会儿指向整型变量,一会儿指向实型变量。 指针变量定义-说明 例如:int i = 100, j, *ip, *intpt; float f, *fp; 以下都是不正确的赋值: ip = 100; /* 指针变量不能赋整数值 */ intpt = j; /* 指针变量不能赋整型变量的值 */ fp = i; /* 只能指向float型变量,不能指向int型变量 */ fp = ip; /* 不同类型的指针变量,不能相互赋值 */ 以下都是正确的赋值: ip = i; /* 使 ip 指向 i */ intpt = ip; /* 使 intpt 指向 ip 所指变量 */ fp = f; /* 使 fp 指向 f */ ip = NULL; /* 使 ip 不再指向任何变量 */ 3. 引用指针变量所指的变量 引用指针变量所指向的对象:* 指针变量 例如:int i=3, j, *ip, *intpt; ip = i; /* 让ip指向变量i */ intpt = j; /* 让intpt指向变量j */ *intpt = *ip + 5; 等价:j = i + 5; 说明:请注意指针变量之间的赋值,指针变量所指向的变量之间的赋值,这两种赋值在表示方法上的区别。 例如:intpt = ip; 使两个指针变量in
您可能关注的文档
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其 第三章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第八章 第八章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第六章 第六章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第七章 第七章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第十二章 第十二章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第十一章 第十一章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第十章 第十章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第四章 第四章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第五章 第五章.ppt
- C语言程序设计(第二版) 教学课件 作者 刘加海 朱云其第一章 第一章.ppt
- C语言程序设计(第二版) 教学课件 作者 夏宽理 赵子正编著 第7章 结构和链表.ppt
- C语言程序设计(第二版) 教学课件 作者 夏宽理 赵子正编著 第8章 数据文件处理技术.ppt
- C语言程序设计(第二版) 教学课件 作者 夏宽理 赵子正编著 第9章 算法设计技术基础.ppt
- C语言程序设计(第二版)电子教案 第1章 程序设计与C语言概述.ppt
- C语言程序设计(第二版)电子教案 第2章 数据类型、运算符与表达式.ppt
- C语言程序设计(第二版)电子教案 第3章 C语言程序设计的三种基本结构.ppt
- C语言程序设计(第二版)电子教案 第4章 数组.ppt
- C语言程序设计(第二版)电子教案 第5章 函数.ppt
- C语言程序设计(第二版)电子教案 第6章 指针.ppt
- C语言程序设计(第二版)电子教案 第7章 结构体与共用体.PPT
文档评论(0)