C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt

C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt

ID:50044422

大小:302.50 KB

页数:13页

时间:2020-03-08

C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt_第1页
C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt_第2页
C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt_第3页
C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt_第4页
C语言程序设计教程 教学课件 作者 李丽娟 第8章指针.ppt_第5页
资源描述:

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

1、*1/13第八章指针§8.1指针的概念§8.2指针的运算*2/13§8.1指针的概念通过指针,可以更好地利用内存资源;描述复杂的数据结构;更灵活地处理字符串和数组等等。使用指针可以设计出简洁、高效的C语言程序。指针的概念及使用有一定难度。指针被用来表示内存单元的地址,如果把这个地址用一个变量来保存,则这种变量就称为指针变量。内存是计算机用于存储数据的存储器,以一个字节作为存储单元,为了能正确的访问内存单元,必须为每一个内存单元编号,这个编号就称为该单元的地址。*3/13§8.1.1指针的变量的定义指针变量的定义格式:[存储类型]数据类型*指针变量名[=初始值];说明:1.存储类型是指

2、指针变量本身的存储类型,2.数据类型是指该指针可以指向该数据类型的变量。3.*号表示后面的变量是指针变量。4.初始值通常为某个变量名或为NULL。如:int*p;/*p为指向整型变量的指针*/chars;/*s为指向整型字符型变量的指针*/float*t;/*t为指向单精度浮点型变量的指针*/*4/13指针变量是用来保存某个变量的地址的,而地址是内存单元的编号,因此指针变量的值的数据类型是无符号的整型。§8.1.2指针变量的使用指针变量一旦定义,必须采用赋值的方式将其与某个变量实体相联系,才能使用。指针变量的赋值方式:指针变量名=&普通变量名;如:inti,*p;p=&i;或:int

3、i,*p=i;两种形式都是将变量i的地址赋给了指针p。*5/13指针变量的引用方式为:①*指针变量名——代表所指变量的值。②指针变量名——代表所指变量的地址。例如:inti,*p;floatx,*t;p=&i;t=&x;*p=3;/*相当于i=3*/*t=12.34;/*相当于x=12.34*/在上面的表达式中,p、&i、&(*p)都表示变量i的地址,*p、i、*(&i)都表示变量i。*6/13变量及指针的存贮关系如图所示:*7/13§8.1.3指针与简单变量的关系一旦指针变量指向了某个简单变量的地址,则改变简单变量的值就可以有三个途径。但该变量的地址值不允许改变。【例8-1】阅读程

4、序,了解简单变量与指针的关系/*exam8_1.c指针与变量的关系*/#includemain(){intx=10,*p;floaty=234.5,*pf;p=&x;pf=&y;printf("x=%d,y=%f",x,y);printf("p=%lu,pf=%lu",p,pf);*8/13*p=*p+10;*pf=*pf+123.4;printf("------------------");printf("x=%d,y=%f",x,y);printf("p=%lu,pf=%lu",p,pf);}程序运行结果:x=10,y=234.500000p

5、=359010302,pf=359010294------------------x=20,y=357.899994p=359010302,pf=359010294*9/13§8.2指针的运算§8.2.1指针的算术运算指针的算述运算通常只限于+和-,或++和――。+、++代表指针向前移。-、――代表指针向后移。设p、q为某种类型的指针变量,n为整型变量。则:p+n、p++、++p、p--、--p、p-q的运算结果仍为指针,而p-q的值为整形值。例如:inta=3,*p=&a;*10/13【例8-3】阅读下面的程序,了解指针的值的变化。/*exam8_3了解指针的值的变化*/#incl

6、udemain(){inti=0,*pi=&i;floatf=0,*pf=&f;longl=0,*pl=&l;printf("pi=%lu,pi+1=%lu",pi,pi+1);printf("pi=%lu,pi-1=%lu",pi,pi-1);printf("pf=%lu,",pf);pf++;printf("pf++=%lu",pf);printf("pl=%lu,",pl);*11/13pl--;printf("pl++=%lu,",pl);}程序运行结果:pi=358944766,pi+1=358944768pi=358944766,pi-1=3

7、58944764pf=358944758,pf++=358944762pl=358944750,pl++=358944746,*12/13§8.2.2指针的关系运算两指针之间的关系运算是比较两个指针所指向的地址关系,只有两种,即相等和不相等。假设有:inta,*p1,*p2;*p1=&a;则:表达式p1==p2的值为0(假),只有当p1、p2指向同一元素时,表达式p1==p2的值才为1(真)。*13/13【例8-4】指针关系运算范例。/*exam8_4.c

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

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

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