C语言第9章幻灯片.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常州信息学院C语言课程组 第十章 指针 本章主要任务: 1、指针的基本概念,变量访问方式;2、指针变量定义、赋值、引用。 3、指针作为函数参数。 4、数组的指针及指向数组(或数组元素)指针变量。 5、指向数组的指针作为函数参数。 内存 内存(内部存储器):是由大规模集成电路芯片组成存储器,包括RAM、ROM。运行中的程序和数据都是存放在内存中的。与内存相对的是外存,外存是辅助存储器(包括软盘、硬盘、光盘),一般用于保存永久的数据。一定要记住:程序、数据是在内存中由CPU来执行和处理的。外存上尽管可以保存程序和数据,但是当这些数据在没有调入内存之前,是不能由CPU来执行和处理的。 内存地址 内存地址:内存是由内存单元(一般称为字节)构成的一片连续的存储空间,每个内存单元都有一个编号。内存单元的编号就是内存地址,简称地址。 CPU是通过内存地址来访问内存,进行数据存取(读/写)。 示意图 变量、变量名、变量的地址、变量值 变量: 命名的内存空间。变量在内存中占有一定空间,用于存放各种类型的数据。 变量名: 变量名是给内存空间取的一个容易记忆的名字。 变量的地址: 变量所使用的内存空间的地址。 变量值: 在变量的地址所对应的内存空间中存放的数值即为变量的值或变量的内容。 示意图 指针、变量的指针 指针: 就是 “内存单元的地址”。指针指向一个内存单元。 变量的指针: 就是“变量的地址”。变量的指针指向一个变量对应的内存单元。 指针变量 指针变量: 就是地址变量。地址(指针)也是数据,可以保存在一个变量中。保存地址(指针)数据的变量称为指针变量。 指针变量p中的值是一个地址值,可以说指针变量p指向这个地址。如果这个地址是一个变量i的地址,则称指针变量p指向变量i。指针变量p指向的地址也可能仅仅是一个内存地址。 示意图 说明 1、牢记:指针-地址。指针变量-地址变量。 2、指针变量是变量,它也有地址,指针变量的地址-指针变量的指针(指针的指针)。 系统访问变量的两种方式(变量的存取方式) 1、直接访问:按地址存取内存的方式称为“直接访问” 。 2、间接访问(使用指针变量访问变量) 。 直接访问 1)按变量名直接访问,按变量地址直接访问。 如:a=3; *(a)=3; 从系统的角度看不管是按变量名访问变量,还是按变量地址访问变量,本质上都是对地址的直接访问。用变量名对变量的访问属于直接访问,因为编译后,变量名-变量地址之间有对应关系,对变量名的访问系统自动转化为利用变量地址对变量的访问。 直接访问 2)按地址直接访问(访问内存存储空间)-一般不要这么使用,这里仅为了说明概念。 如:*((int *)(2008))=5; 在地址2008保存一个整数。 farptr=(char far *)0xA0000000; *(farptr+offs+i1*MAXB)=*farbit; 操作显示内存。 间接访问(使用指针变量访问变量) 将变量a的地址(指针)存放在指针变量p中,p中的内容就是变量a的地址,也就是p指向a,然后利用指针变量p进行变量a的访问。 p=a, *p=3。 从变量名获得变量地址用“”运算符,从地址获得地址指向的数据用“*”运算符。 示意图 指针变量的定义 定义格式 : 基类型 *变量名; 说明 1、C语言变量先定义后使用,指针变量也不例外,为了表示指针变量是存放地址的特殊变量,定义变量时在变量名前加“*”号。 2、指针变量存放地址值,PC机用2个字节表示一个地址,所以指针变量无论什么类型,其本身在内存中占用的空间是2个字节。sizeof(pt1)=sizeof(f)=sizeof(pc)=2。 说明 3、指针变量的基类型(简称:指针变量类型):指针变量所指向数据的类型。我们知道,整型数据占用2个字节,浮点数据占用4个字节,字符数据占用1个字节。指针变量类型使得指针变量的某些操作具有特殊的含义。比如,pt1++;不是将地址值增1,而是表示将地址值+2(指向后面一个整数)。 指针变量的赋值方法 1、方法一:将地址直接赋值给指针变量(指针变量指向该地址代表的内存空间) 。 2、方法二:将变量的地址赋值给指针变量(指针变量指向该变量) 。 方法一 将地址直接赋值给指针变量(指针变量指向该地址代表的内存空间) 。 例如: char far *farptr=(char far *)0xA0000000; 将显存首地址赋值给指针。 float *f=(float *)malloc(4); malloc动态分配了4个字节的连续空间,返回空间首地址,然后将首地址赋值给浮点型指针f。这样浮点型指针f指向这个连续空间的第一个字节

文档评论(0)

love1987421 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档