C语言程序设计-韩胜菊-第九章 指针-.pptx

C语言程序设计-韩胜菊-第九章 指针-.pptx

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第九章指针内容简介⑴什么是指针?⑵如何使用指针?⑶指针如何引用数组?⑷指针变量作函数参数与其它类型有什么不同?

本章导读◎本章导读指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要特色之一。利用指针变量可以很方便地对数组和字符串进行操作;可以像汇编语言一样直接处理内存地址,从而编出精练高效的程序;可以作函数参数;可以动态分配内存,等等。指针极大地丰富了C语言的功能。学习指针是学习C语言最重要的环节之一,能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解指针的基本概念之外,还必须要多上机,多编程,多调试。只有做到这些,才能真正掌握什么是指针。

9.1指针的基本概念9.1指针的基本概念在计算机中,所有的数据都存放在存储器中。不同的数据类型所占用的内存字节数不同,如字符数据占1个字节,浮点型数据占4个字节等。为了正确地访问这些内存单元,需要为每个内存单元编号。内存单元的编号称作地址(也称指针)。图9-1变量的地址内存单元的指针和内存单元的内容是两个不同的概念。可以用一个通俗的例子来说明它们之间的关系。一封邮寄地址为人民路72号的信件,邮递员首先需要找到“人民路72号”(地址或指针)住户,然后将信件(单元内容)递交到该住户手中。对于计算机也是如此,比如在起始地址为2001的内存单元中存放着整型数据i,它的值是35,我们首先需要找到“2001号”(地址或指针)内存单元,然后才能访问其中的数据35(单元内容),见图9-1。对于一个内存单元来说,单元的地址即为指针,其中存放的数据才是该单元的内容。

9.1指针的基本概念…200135变量i2003量p3004图9-1变量的地址

9.1指针的基本概念变量名与存储器中的某个地址相对应,前述章节中,我们只引用变量名,而没有给出它所在的具体地址,每个变量名与其具体地址的关联由C编译系统来完成。对变量名操作,实际上就是对该变量所在的具体地址中的单元内容进行操作,这种直接按变量的地址存取变量值的方式称为直接存取方式。指针是一种数据类型,所以就有常量和变量之分。上例中,“人民路72号”和“编号2001”都是指针常量。

9.2指针变量用来存放整型数据的变量是整型变量。同理,用来存放指针(即内存地址)的变量称为指针变量。如果指针变量p的值等于变量i的地址,则称指针变量p指向变量i,见图9-1。通过指针变量p间接得到变量i的地址,然后再存取变量i的值,这种方式称为间接存取方式。在不至于引起混淆的情况下,也称指针变量为指针。9.2.1指针变量的定义方法定义指针变量的一般形式为:类型标识符*指针变量名;例:int*p;功能:定义一个名为“指针变量名”的指针变量,该指针变量只可以存取类型为“类型标识符”的变量的地址。

9.2指针变量说明:指针变量前面的“*”表示定义该变量的数据类型为指针类型,“*”不是指针变量名的一部分;在定义指针变量时必须指定类型标识符。一个指针变量只能指向同类型的变量,不能时而指向一个字符型变量,时而又指向一个整型变量。指针变量的值是一个整型数据,在大部分C编译系统中占4个字节存储空间,也有C编译系统中占2个字节。例:char*p1;float*p2;void*p3;//定义一个指向字符型变量的指针变量p1//定义一个指向浮点型变量的指针变量p2//定义一个指向空类型变量的指针变量p3定义一个指向空类型变量的指针的含义是:定义一个指针变量,但

9.2指针变量不指定它是指向哪一类型数据的。指向void类型的指针变量和指向其它类型的指针变量可以相互赋值,且不需要强制类型转换。9.2.2指针变量的运算1.取内存单元值指针指向的内存单元实际上就是指针指向的变量,因此,取指针指向的内存单元值实际上就是取指针指向的变量值。取内存单元值的一般形式为:*指针表达式例:*p功能:取“指针表达式”所指向的内存单元所存储的数据。指针表达式可以是单个的指针变量,也可以是由指针变量和整型数据一起构成的指针表达式。

9.2指针变量说明:“*”为指针运算符,也称间接访问运算符,是单目运算符。指针运算符与乘法运算符“*”书写方式相同,应注意区分两者,乘法运算符是双目运算符。在程序中,编译系统会自动识别“*”是指针运算符还是乘法运算符。例:如图9-1所示,指针变量p指向变量i,则*p表示指针p所指向的内存单元2001存储的数据35,即*p与i相等,它们的值都是35。2.取地址运算取地址运算的一般形式为:&变量标识符例:&I功能:

9.2指针变量取“变量标识符”的地址。变量标识符可以是一个除register类型之外的变量,也可以是一个数组元素。说明:“&”是取地

文档评论(0)

150****5008 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档