C语言第八章.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文档。上传文档
查看更多
第八章 善于使用指针 主要内容 什么是指针 指针变量 定义、引用、和普通变量的关系 指针作为函数参数 通过指针引用数组 通过指针引用字符串 字符串指针作为函数参数 提高部分 8.1 什么是指针 有关指针的一些概念 指针: C语言中,将地址形象化的称为指针 通过指针找到数据,就是通过地址找到数据 指针变量: 存放指针的变量,称之为指针变量 指针变量里面存放的是指针,也就是地址 为什么使用指针 更方便、更主动的操作数据、构建数据结构 8.1 什么是指针 学习指针的几点建议 弄明白存放在内存中的数据是如何访问的 这是学习指针的基础 清晰的记住指针和变量的几个关系: 指针的内容,指针指向的内容等等 明白指针作为函数参数、返回值的作用 将地址传递到函数,使得几个函数变量共同操作一个数据地址,实现数据交换 8.1 什么是指针 指针与地址 存储器中的一个字节为一个单元,为了能够正确访问这些单元,必须为其编号。称之为地址 所有数据都是存放在存储器中的。占据一个或多个单元。这些单元即数据在内存中的存放地址。 一般来讲,一个数据是存放在多个连续的存储单元中的 8.1 什么是指针 指针与地址 如果数据占据多个单元,一般的访问方式是,确定数据占据的单元数目,然后从其所占据单元的首地址开始依次访问 指针变量存储的是数据占据单元的首地址,可以直接访问地址单元。 指针变量若要访问存储的数据。则需要知道数据的首地址和数据占据的空间 指针变量的类型,就是数据占据的空间大小 8.2 指针变量 8.2.1 使用指针变量的一个例子 程序: void main() { int a; int *p; //定义指针变量,变量前面加* a=100; p=a; //将变量a的地址赋给指针p printf(a=%d\n,a); printf(*p=%d\n,*p) //通过指针访问数据 } 8.2 指针变量 8.2.2 指针变量的定义 格式:类型说明符:*变量名 “*”表示指针变量,说明这个变量是指针类型 类型说明符:说明指针指向数据的类型 若要改变指针指向的数据类型,则需要进行强制类型转换 指针的值存放指向数据的首地址,指针的类型确定了指向数据占据的单元数目 8.2 指针变量 8.2.3 指针变量的引用 变量的数据访问形式 普通变量:变量名—变量存储的数据 指针变量:*变量名—指向存储单元存储的数据 定义时:*p表示为指针;使用时*p表示指针指向的数据 变量的地址访问形式 普通变量:变量名—存储数据的首地址 指针变量:变量名—指向的存储单元 一般情况下,不要将地址值直接赋给指针变量 8.2 指针变量 8.2.3 指针变量的引用 一般情况下,不能将地址值直接赋给变量 若有 int a,*p; 则:a=1000 p=2000是错误的 指针不会单独使用,常和其他普通变量关联在一起使用 关联方式:p=a 使用指针,必须要先给其一个地址,再访问地址中的数据,如同使用变量必须有一个确定值一样 8.2 指针变量 8.2.3 指针变量的引用 指针和变量的几个换算关系: 对于变量,有:名称=数据、名称=地址 对于指针,有:名称=地址、*名称=指向的数据 若有定义:int a, *p 则: a、p 是同一类型数据,为地址 a、*p 是同一类型数据,为整型数据 一般情况下,使用p=a的形式,让指针与变量关联,使用*p的形式,访问指向的数据 8.2 指针变量 8.2.4 指针变量作为函数参数 复习:函数参数的传值与传址方式 传值:传递后形参不影响实参 传址:传递后实参、形参指向同一地址 利用传址的特点,改变形参指针指向数据的内容,即可改变对应实参指针指向的内容 利用传址方式,可以让函数在保持独立性的同时,实现对主程序中的数据进行批量修改的功能。 8.2 指针变量 8.2.4 指针变量作为函数参数 指针作为函数参数,是一种传址方式。 利用实参形参指向同一地址的特性,使函数可以改变上层函数中变量的值 使用这种方法,必须使用传址的特性,将要改变的变量的地址作为实参,传递给下层调用函数 函数的参数也必须为指针,通过在函数中改变指针指向的数据的值,就改变了实参指向数据的值,也就改变了实参所在函数中变量的值 8.2 指针变量 8.2.4 指针变量作为函数参数 例:用函数实现两个变量交换。 传值:函数无法改变实参的值,不能实现 全局变量:可以实现,但函数独立性差 函数的调用必须使用在函数之外定义的全局变量 全局变量的定义必须符合函数要求的名称 传址:利用传址的特性,可以实现要求,同时保持了函数的独立性 函数的参数必须是指针 形参、实参的值均没有改变,改变的是地址中的值 8.2 指针变量 8.2.4 指针变量作为函数参数 例:用函数

文档评论(0)

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

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

1亿VIP精品文档

相关文档