C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt

C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt

ID:50044570

大小:402.00 KB

页数:75页

时间:2020-03-08

C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt_第1页
C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt_第2页
C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt_第3页
C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt_第4页
C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt_第5页
资源描述:

《C语言程序设计教程 教学课件 作者 陈宝贤 第11章指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、教学内容:11.1指针的概念11.2指针和变量11.3指针和数组11.4字符串和指针变量11.5函数和指针11.6指针数组和指向指针变量的指针第11章指针教学要求:1.掌握指针的定义方法和引用方法。2.掌握指针的运算方法。3.掌握指针与数组的综合应用程序设计方法。4.掌握指针与字符串处理的程序设计方法。5.了解指针在函数中的应用。第11章指针指针是C语言中的重要概念,也是C语言的重要特色。使用指针,可以很好地利用内存资源,使其发挥最大的效率;使用指针,可以描述复杂的数据结构,对字符串的处理可以更灵活,对数组的处理更方便,使程序的书

2、写简洁、高效。11.1指针的概念1.内存地址(1)计算机硬件系统的内存储器中,拥有大量的存储单元,一个字节为一个存储单元,容量为1字节。内存是按字节连续编号的,每一个存储单元编号就是存储单元的“地址”。每个存储单元都有一个惟一的地址。(2)在地址所标识的存储单元中存放数据。注意:内存单元的地址与内存单元中的数据是两个完全不同的概念。2.变量地址系统分配给变量的内存单元的起始地址。设有如下一个程序:main(){intn;scanf("%d",&n);printf("n=%d",n);变量n地址3000}设系统分配给变量n的2字节

3、存储单元为3000和3001,则起始地址3000就是变量n在内存中的地址。C编译程序编译到该变量定义语句时,将变量n登录到“符号表”中。符号表的关键属性有两个:一是“标识符名(id)”,二是该标识符在内存空间中的“地址(addr)”。3.指针指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的三个方面的内容:(1)指针的类型(2)指针变量(3)指针的值或者叫指针所指向的内存区。4.指针的类型指针也是有类型的,它的类型就是它所指向的对象(如变量、数组、函数等)的类型,一般在定义指针时指定其类型

4、。5.指针的值指针的值,或者叫指针所指向的内存区或地址。指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。6.存取变量值的方式(1)直接访问──直接利用变量的地址进行存取1)scanf(“%d”,&n)的执行过程是这样的:用变量名n作为索引值,检索符号表,找到变量n的起始地址;然后将键盘输入的值送到内存单元中。2)printf("n=%d",n)的执行过程:首先找到变量n的起始地址,然后从内存单元中取出其值,最后将它输出。(2)间接访问──通过另一变量访问该变量的值C语言规定:在程序中可以定义一种

5、特殊的变量(称为指针变量),用来存放其它变量的地址。11.2指针和变量1.变量的指针变量的指针指的是变量的地址,变量的地址指的是给变量分配的存储单元的首地址。一个变量定义后,在编译时系统给变量分配存储单元。通过变量的指针能够找到该变量。2.指针变量专门用于存储其它变量地址的变量。3.指针与指针变量的区别指针变量是变量,而指针是地址值。变量的地址可以用取地址符号“&”取变量的地址。4.指针变量的定义在使用指针变量之前必须先定义。定义指针变量格式为:基类型*指针变量名(1)其中“基类型”为指针变量要指向的对象的类型;(2)变量名前的“*

6、”,表示该变量为指针变量。(3)“指针变量名”可以自定,但要遵循标识符的命名规则。5.指针变量的引用(1)指针变量只能存放地址,不能将整型数据、字符型数据、实型数据等非地址类型的数据赋值给指针变量。(2)指针变量只能指向同一类型的变量。inta=8;charh=’A’;int*p1;char*p2;p1=&a;p2=&h;p1是指向整型变量的指针变量,p2是指向字符型变量的指针变量*p1和*p2是p1和p2所指向的变量a和h。p1不能指向字符变量h。inta,*p;p=&a;*p=5;(1)&a表示取a变量的地址。*p则表示指针变量

7、p所指的对象a。&a5pa*p*&a&*p6.相关的运算符取地址运算符:&指针运算符(或间接访问运算符):*(2),&为同级运算符,结合性从右至左。当执行了p=&a;后,则下列表示是等价的: 对象:a==*p==*&a==*(&a)指针:p==&a==&*p==&(*p)(3)&*p等价于&a&*p即&(*p1)与&a等价。 (4)p1=&*p;的作用是p1=&a;(5)(*p)++等价于a++。 (6)&与*互为逆运算,当与&连续在一起时,具有抵消作用:*&a==a,&*p==p.7、指针变量的赋值运算用取地址运算符(&)将一

8、个变量的地址赋给一个指针变量。inti,p;i=3;p=&i;将一个指针变量赋给另一个同类型的指针变量。inti,pi,pj;pi=&i;pj=pi;作用是使pi,pj都指向变量i。piipj&i&i给指针变量(pi)赋“空

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。