函数指针变量.PPT

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 指针 教学目的: 通过本章的学习,要求能掌握指针的基本概念,熟练掌握指针变量的类型说明和指针变量的赋值和运算方法,熟练掌握一维数组指针的表示方法,掌握二维数组的指针表示方法,掌握指针在字符串和函数中的使用方法。本章内容为后续结构体、文件、课程设计的学习作好准备,同时,本章的内容为后续课程数据结构的学习奠定基础。 第7章 指针 第7章 指针 重点和难点 重点: (1)指针的基本概念 (2)数组的指针表示方法 (3)字符串指针变量的说明和使用 (4)函数指针变量 难点: (1)函数指针变量 (2)指针数组 (3)多级指针 7.1 关于指针的引例 指针是C语言中广泛使用的一种数据类型, 运用指针编程是C语言最主要的风格之一。指针变量可以表示各种数据结构, 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。 7.1 关于指针的引例 【例7.1】 测字符串的长度 /* 源文件名:Li7_1.c */ #include stdio.h int strlenth(char *p) { int len=0; while(*p!=\0) { len=len+1;p++; } return len; } void main() { char *pstr=computer; int len; len=strlenth(pstr); printf(\n 字符串的长度是 %d\n,len); } 程序运行后,屏幕显示: 字符串的长度是 8 程序分析: 在主函数中定义一个指向字符串的指针变量pstr,并将字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char *p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为\0,如果不为\0,则进行len++的操作,直到遇到\0为止。然后返回len值。 7.2 指针与指针变量 在计算机中,所有的数据都是存放在存储器中的。 一般把存储器中的一个字节称为一个内存单元, 不同的数据类型所占用的内存单元数不等,在第2章中已有详细的介绍。根据内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 内存单元的指针和内存单元的内容是两个不同的概念。 对于一个内存单元来说,单元的地址即为指针, 其中存放的数据才是该单元的内容。在C语言中, 允许用一个变量来存放指针,这种变量称为指针变量。因此, 一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。 7.2.1 指针与指针变量的基本概念 图7-1中,设有字符变量c,其内容为“K”(ASCII码为十进制数 75),c占用了011A号单元(地址用十六进数表示)。设有指针变量P,内容为011A, 这种情况我们称为P指向变量c,或说P是指向变量c的指针。 严格地说,一个指针是一个地址, 是一个常量。而一个指针变量却可以被赋予不同的指针值,是变量。 但常把指针变量简称为指针。为了避免混淆,我们约定:“指针”是指地址, 是常量,“指针变量”是指取值为地址的变量。 定义指针的目的是为了通过指针去访问内存单元。 7.2.2 指针变量的类型说明 对指针变量的类型说明包括三个内容: (1)指针类型说明,即定义变量为一个指针变量; (2)指针变量名; (3)变量值(指针)所指向的变量的数据类型。 指针变量的一般形式为:类型说明符 *变量名; 其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型。 7.2.2 指针变量的类型说明 例如: int *p1;表示p1是一个指针变量,它的值是某个整型变量的地址。或者说p1指向一个整型变量。至于p1究竟指向哪一个整型变量,由p1被赋予的地址来决定。 再如: staic int *p2; /*p2是指向静态整型变量的指针变量*/ float *p3; /*p3是指向浮点变量的指针变量*/ char *p4; /*p4是指向字符变量的指针变量*/ 应该注意的是,一个指针变量只能指向同类型的变量,

文档评论(0)

wumanduo11 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档