- 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章指针C程序设计教学课件
第6章 指针 6.1 指针的概念 存储器 存储器-----存储单元-----存储单元的地址 对应于: 文件柜--文件柜上的抽屉--抽屉上的编号 在内存中如何存储数据、访问数据? 写程序时,是通过变量名来存取数据。其实程序经过编译以后已经将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。 存取变量值的方式有两种:直接存取、间接存取。 直接存取方式:直接按变量地址存取变量值的方式称为直接存取方式,或直接访问方式。 还有一种方式称为间接存取(间接访问)的方式。可以在程序中定义这样一种特殊的变量,它是专门用来存放地址的。 由于通过地址能找到所需的变量单元,因此可以说,地址指向该变量单元。因此将地址形象化地称为“指针”。一个变量的地址称为该变量的指针。 如果有一个变量是专门用来存放另一变量地址(即指针)的,则它称为指针变量。指针变量的值(即指针变量中存放的值)是地址(即指针)。 6.2.1 定义指针变量 指针变量和其他变量一样,也必须是先定义,后使用。在定义的时候,要指定其类型。例如: 上句定义了两个指针变量pointer_1 和pointer_2,这两个指针变量都只能存放整型变量的地址。因此称pointer_1和pointer_2是指向整型数据的指针变量。这个int就是指针变量pointer_1、pointer_2的基类型。 指针变量的基类型用来指定该指针变量可以指向的变量的类型。 定义指针变量的一般形式为: 基类型 *指针变量名; 下面都是合法的定义: float *pointer_3; char *pointer_4; pointer_3是指向单精度型数据的指针变量 pointer_4是指向字符型数据的指针变量 注意:“*”不是指针变量名的一部分,在定义变 量时在变量名前加一个“*”表示该变量是指针变量。 问题:怎样使指针变量指向另一个变量呢(存另一个变量的地址)? 只需要把被指向的变量的地址赋给指针变量即可。 例如: pointer_1=i; pointer_2=j; 以上两句分别是将变量i的地址存放到指针变量pointer_1中, 将变量j的地址存放到指针变量pointer_2中。 一般的C++编译系统为每一个指针变量分配4个字节的存储单元,用来存放变量的地址。 在定义指针变量时要注意: (1) 不能用一个整数给一个指针变量赋初值。 可以将一个已定义的变量的地址赋指针变量。 (2) 在定义指针变量时必须指定基类型。 6.2.2 引用指针变量 *指针运算符(或称间接访问运算符)。 例如: 指针变量p中存放的是变量a的地址,则*p就等价于a变量。 例6.1 通过指针变量访问整型变量。 附例: 下面对“”和“*”运算符再做些说明: (1) 如果已执行了“pointer_1=a;”语句,请问 *pointer_1的含义是什么? “”和“*”两个运算符的优先级别相同,但按自右至左方 向结合,因此先进行*pointer_1的运算,它就是变量 a,再执行运算。因此,*pointer_1与a相同,即 变量a的地址。 如果有pointer_2=*pointer_1;它的作用是将a(a 的地址)赋给pointer_2,如果pointer_2原来指向b, 经过重新赋值后它已不再指向b了,而也指向了a。 (2) *a的含义是什么? 先进行a的运算,得a的地址,再进行*运算, 即a所指向的变量,因此即为变量a。即*a与 a等价。 指针变量应用举例 例6.2 输入a和b两个整数,按先大后小的顺序输出a和b(用指针变量处理)。 解此题的思路是: 设两个指针变量p1和p2,使它们分别指向a和b。然后通过处理,使p1指向a和b中的大者,p2指向小者,顺序输出*p1,*p2就实现了按先大后小的顺序输出a和b。 6.2.3 指针作为函数参数 函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送给被调用函数的形参。 例6.3 题目同例6.2,即对输入的两个整数按大小顺序输出。这里要求用函数处理,而且用指针类型的数据作函数参数。 本例采取的方法是交换a和b的值,而p1和p2的值不变。 可以看到,在执行swap函数后,主函数中的变量a和b的值改变了。这个改变不是通过将形参值传回实参来实现的。请大家考虑一下能否通过调用下面的函数实现a和b互换。 为了使在函数中改变了的变量值能被main函数所用,不能采取把要改变值的变量作为参数的办法,而应该用指针变量作为函数参数。在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然保留下来,这样就实现了“通过调用
您可能关注的文档
- 第5章___现代物流学__课件__叶怀珍主编.ppt
- 第5章-酸碱平衡和酸碱滴定法.ppt
- 第5章_工业锅炉燃烧设备.ppt
- 第5章__ISE应用基础实验 FPGA应用技术基础教程 [电子教案].ppt
- 第5章_新闻职业道德的核心理念新闻法规与新闻职业道德 教学课件.ppt
- 第5章_常用传感器 测试技术教学课件.ppt
- 第5章_现代心理物理学.ppt
- 第5章_自动测试系统与虚拟仪器概论 检测技术与仪器 工程测试技术 教学课件.ppt
- 第5章_智能信息设备v1.1 物联网 教学课件.ppt
- 第5章 波速试验 岩土工程原位测试技术 教学课件.ppt
- 第6章 收益现值法评估二手车价值 第三节 评估实例分析 汽车评估 课件.ppt
- 第6章 收益现值法评估二手车价值 第一节 收益现值法的基本原理 汽车评估 课件.ppt
- 第6章 收益现值法评估二手车价值 汽车评估 课件.ppt
- 第6章 控制系统的校正 自动控制理论教学课件.pdf
- 第6章 收益现值法评估二手车价值 第二节 6.2 收益现值法中各评估参数的确定 汽车评估 课件.ppt
- 第6章 数据库操作 《数据库应用技术——Delphi应用系统开发》课件 电子教案.ppt
- 第6章 数 组 《C语言程序设计教程》课件.ppt
- 第6章 数据流的运用 计算机系JAVA培训讲义.ppt
- 第6章 振幅调制、 解调及混频 高频电路原理与分析 教学课件.ppt
- 第6章 旅游服务交谈礼仪 旅游服务礼仪 教学课件.ppt
有哪些信誉好的足球投注网站
文档评论(0)