C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt

C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt

ID:50350976

大小:666.50 KB

页数:105页

时间:2020-03-08

C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt_第1页
C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt_第2页
C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt_第3页
C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt_第4页
C语言程序设计 教学课件 作者 冉崇善 等 第6章 指针.ppt_第5页
资源描述:

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

1、第6章指针C语言程序设计主编:冉崇善第6章指针6.1指针与指针变量6.2指针与数组6.3指针的地址分配6.4指针数组6.5指向指针的指针6.6Main函数的参数6.7指针与函数26.1指针与指针变量1.数据在内存中的存储方式:按数据类型给在内存为其分配一定数量的存储单元(字节)。跟我来!2.内存单元的地址:内存单元的编号,与变量名对应。3.内存单元的内容:即变量的值。6.1.1内存、变量地址与指针3例如有定义:inta,b;charc;floatx;变量a,b,c,x的内存分配情况:abxc跟我来!44.变量的“直接访问”

2、方式:按变量的地址(即变量名)存取变量值的方式。(见下图)i20003直接访问:跟我来!53i20002000pointer间接访问方式示意图:将变量的地址放在另一个内存单元中,先到另一个内存单元中取得变量的地址,再由变量的地址找到变量并进行数据存取(见下图)。跟我来!5.变量的“间接访问”方式6内存用户数据区示意图:变量pointer为指针变量,存放的是变量i的内存地址,我们说pointer指向i。369.....2000...变量i变量j变量k变量pointer3010200020022004变量的值用10进制示意内存

3、地址76.指针的概念:一个变量的地址称为该变量的指针。86.1.2指针变量的定义与引用1.指针变量的定义1)定义方式:类型标识符*指针变量名;跟我来!例:float*p1;(定义了p1为指向实型变量的指针变量)char*p2;(定义了p2为指向字符型变量的指针变量)9标识符前面的“*”,表示该变量为指针变量。但指针变量名是*后面的名字(不包括“*”)。3.说明2)指针变量的三要素:指针变量的类型:和其所指变量的类型一致;指针变量的值:另一个变量在内存的地址;指针变量的名字:起法同普通变量。102.指针变量的引用“引用”的实

4、质,就是指针变量如何获取地址,如何实现对变量的操作。为了实现对指针变量的引用,需要使用指针运算符“&”、“*”。(1)&——取地址运算符,其功能是取得其后变量的地址。如&i是取变量i的地址,对指针变量赋地址值可使用该方法。(2)*——间接引用运算符,它所返回的是其操作数所指向对象的值。用该运算符可实现指针变量对其他变量的间接访问。例如:int*p;/*定义整型指针p*/inti;p=&i;/*指针变量p赋值*/*p=3;/*相当于对变量i的操作,i赋值为3*/11(3)*运算符与&运算符的特点①优先级别相同,并且都是“右结

5、合”,*和&是两个互逆的操作,当这两个操作符碰在一起时,其作用相互抵消。②*与&的组合使用&*p表示i变量的地址,*&i表示i变量的内容例6-1用指针变量进行输入、输出。#includemain(){int*p,m;scanf("%d",&m);p=&m;/*指针p指向变量m*/printf("%d",*p);/*p是对指针所指的变量的引用形式,与此m意义相同*/}12(4)指针变量的初始化指针变量初始化是指在定义指针变量的同时给指针变量一个初始值。如:inta,*pa=&a;设a=3,a的地址是4000

6、,则pa与*pa的关系如图6-3所示。说明:指针变量pa指向变量a的地址4000,*pa的值等于a的值3。13(5)指针变量的引用在C语言中,将指针变量的使用称为指针变量的引用。如果要使用该指针变量必须掌握以下两个内容:①*指针变量名——代表所指变量的值,即*pa。②指针变量名——代表所指变量的地址,即pa。用*pa来表示pa指向的对象a,*pa与a是等价的。*pa可以象普通变量一样使用。如:a=12;*pa=12;scanf("%d",&*pa);scanf("%d",pa);printf("%d%d",*pa,a);注

7、意:&*pa即&(*pa),是对变量*pa取地址,它与&a等价;pa与&(*pa)等价,a与*(&a)等价。14例6-2用变量及指针变量分别进行数据的输入及输出。#includemain(){inta,b,c,*p1,*p2,*p3=&c;/*指针变量的定义*/a=5;b=20;scanf("%d",p3);/*用指针变量实现对c变量的数据输入*/p1=&a;p2=&b;printf("(1)--%d,%d",a,b,c);printf("(2)--%d,%d",*p1,*p2,*p3);p1=p

8、2;/*指针与指针之间赋值*/printf("(3)--%d,%d",*p1,*p2);*p1=2;printf("(4)--%d,%d",a,b);}15输入:10输出:(1)--5,20,10(2)--5,20,10(3)--20,20(4)--5,2从结果可看出:(1)和(2)的结果是一样

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

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

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