《c语言程序设计教学资料》第9章-指针.ppt

上传人:wuy****n92 文档编号:72953595 上传时间:2023-02-14 格式:PPT 页数:48 大小:4.74MB
返回 下载 相关 举报
《c语言程序设计教学资料》第9章-指针.ppt_第1页
第1页 / 共48页
《c语言程序设计教学资料》第9章-指针.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《《c语言程序设计教学资料》第9章-指针.ppt》由会员分享,可在线阅读,更多相关《《c语言程序设计教学资料》第9章-指针.ppt(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第9章章 指针指针主要内容变量的内存地址变量的内存地址指针变量的定义和初始化指针变量的定义和初始化间接寻址运算符间接寻址运算符函数指针函数指针内存地址内存地址p 指令和数据都保存在指令和数据都保存在计算机的内存中。算机的内存中。p 内内存存区区的的每每一一个个字字节有有唯唯一一的的一一个个编号号,这就就是是“地地址址”。地地址址是是一一个个无无符符号号整整数数,其其字字长一般与主机相同。一般与主机相同。p 如如果果在在程程序序中中定定义了了一一个个变量量,在在对程程序序进行行编译时,系系统就就会会给这个个变量量分分配配内内存存单元元。只只要要指指明明要要访问的的内内存存单元元的的地地址址,就

2、就可以立即可以立即访问到到该单元。元。指针变量的定义指针变量的定义指指针概念:概念:p存放存放变量地址需要一种特殊的数据量地址需要一种特殊的数据类型,即型,即“指指针”。p 一个一个变量的指量的指针就是就是该变量的地址(指量的地址(指针就是地址)就是地址)p 具具有有指指针类型型的的变量量,成成为指指针变量量,它它是是专门用用于存于存储变量地址量地址值的的变量。量。p 如如果果有有一一个个变量量专门用用来来存存放放另另一一变量量的的地地址址(即即指指针),),则它称它称为“指指针变量量”一个变量的地址称为该变一个变量的地址称为该变量的量的“指针指针”。例如,地址例如,地址2000是变量是变量的

3、指针。的指针。如果有一个变量专门用来如果有一个变量专门用来存放另一变量的地址(即存放另一变量的地址(即指针),则它称为指针),则它称为“指针指针变量变量”。上述的上述的i_pointer就是一就是一个指针变量。个指针变量。变量名变量名变量值变量值变量的变量的地址地址说明:说明:p 定义形式:定义形式:数据类型数据类型 *指针变量名指针变量名 其其中中,数数据据类类型型表表示示指指针针变变量量要要指指向向的的变变量量的的数数据据类型。类型。(2)在定义指针变量时必须指定基类型。在定义指针变量时必须指定基类型。例:例:int *p;float a;p=&a;指针变量的初始化指针变量的初始化(1)(

4、2)注意注意:n 指针变量中只能存放地址(指针),不要将一个指针变量中只能存放地址(指针),不要将一个整数(或任何其他非地址类型的数据)赋给一个指针整数(或任何其他非地址类型的数据)赋给一个指针变量。变量。n 指针只有在真正指向了一块有意义的内存后,才能指针只有在真正指向了一块有意义的内存后,才能访问它的内容。未初始化的指针引起非法访问内存访问它的内容。未初始化的指针引起非法访问内存#include void main()int a=100,b=10;int*pa,*pb;pa=&a;/把把变变量量a的地址的地址赋给赋给p1 pb=&b;/把把变变量量b的地址的地址赋给赋给p2 printf(

5、%d,%d,););printf(%d,%d,*pa,*pb););papb10010寻址方式寻址方式任任何何变量量在在存存在在期期间总有有确确定定存存储位位置置,有有固固定的地址定的地址p 如何如何读写内存中的数据?写内存中的数据?通通过变量的地址量的地址访问变量所在的存量所在的存储单元。元。p 两种两种寻址方式址方式 直接直接寻址址 间接接寻址址 直接寻址直接寻址p 按按变量量名名或或地地址址存存取取变量量值的的方方式式称称为“直直接接访 问”方式方式p&取地址运算符取地址运算符p%p格式字符,表示输出变量的地址值格式字符,表示输出变量的地址值间接寻址间接寻址p 通通过指指针变量量间接接存

6、存取取它它所所指指向向的的变量量的的访问方式称方式称为“间接接访问”方式方式l“”和和“*”两个运算符的优先级别相同,但按自右而左方两个运算符的优先级别相同,但按自右而左方向结合。向结合。p 取地址运算符取地址运算符&使用在变量名前取变量地址,是对应类型的指针值,可赋值使用在变量名前取变量地址,是对应类型的指针值,可赋值给类型合适的指针。给类型合适的指针。例:例:int a=5,*p;p=&a;我是真的,我是真的,猜对了吗猜对了吗p 间接运算符间接运算符*用来取指针指向地址的内容用来取指针指向地址的内容*p=x=5“”和和“*”两个运算符的优先级别相同,但按自右而左方向两个运算符的优先级别相同

7、,但按自右而左方向结合。结合。指针运算指针运算abcd253p33指针与函数指针与函数按值调用:按值调用:p 指针变量作函数参数指针变量作函数参数 按地址调用(模拟按引用调用)按地址调用(模拟按引用调用)函数指针函数指针p 如果在程序中定义了一个函数,在编译时,编译如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间系统为函数代码分配一段存储空间,这段存储空间的起始地址的起始地址,称为这个称为这个函数的指针函数的指针。p 可以定义一个指向函数的指针变量,用来存放某可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该一函数的起始

8、地址,这就意味着此指针变量指向该函数。函数。注意:注意:int (*add)(int,int);与与int *add(int,int);是不同是不同的的后者函数有两个整型形参,而函数的返回值时一个后者函数有两个整型形参,而函数的返回值时一个指针类型的数据指针类型的数据。函数返回指针函数返回指针有关指针的小结有关指针的小结 1.首先要准确地弄清楚指针的含义。指针就是地址,凡是出现“指针”的地方,都可以用“地址”代替,例如,变量的指针就是变量的地址,指针变量就是地址变量 要区别指针和指针变量。指针就是地址本身,而指针变量是用来存放地址的变量。2.什么叫“指向”?地址就意味着指向,因为通过地址能找到具有该地址的对象。对于指针变量来说,把谁的地址存放在指针变量中,就说此指针变量指向谁。但应注意:只有与指针变量的基类型相同的数据的地址才能存放在相应的指针变量中。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com