C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt

C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt

ID:50321043

大小:1.98 MB

页数:52页

时间:2020-03-08

C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt_第1页
C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt_第2页
C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt_第3页
C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt_第4页
C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt_第5页
资源描述:

《C语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 李丽娟 C第2版(第8章_指针).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计教程(第2版)第8章指针第8章指针本章主要内容1.指针的概念2.指针与变量的关系3.指针的使用方法和运算4.指针的作用5.指针与函数的关系6.指针与数组的关系8.1指针的概念重要概念:指针也是变量。指针变量只能存放变量的地址。指针变量也分别有不同的类型,用来保存不同类型变量的地址。变量存储的概念:假设有:inti=−5;charch='A';floatx=7.34;各变量占用内存单元的概念情况如图所示:8.1指针的概念8.1.1指针变量的定义指针变量的定义形式:[存储类型]数据类型*指针变量名[=初始值];如:inta,*p=a;p为指向整

2、型变量的指针,p指向了变量a的地址。char*s=NULL;s为指向字符型变量的指针,p指向一个空地址。float*t;t为指向单精度浮点型变量的指针。8.1指针的概念基本概念:指针变量的值是某个变量的地址。地址是内存单元的编号,每一个在生命周期内的变量在内存中都有一个地址,该地址不会因为其变量值的变化而变化。内存单元编号通常用无符号的长整型表示,亦即指针变量的值是无符号的长整型。特别提示:要区分指针变量所指的值和变量的值。8.1指针的概念8.1.2指针变量的使用必须先将指针与变量的地址相关联,然后才能使用指针。关联方式:①初始化;②赋值赋值格式:<指

3、针变量名>=&<普通变量名>;例如:inti,*p;p=&i;或:inti,*p=&i;——→初始化方式关联结果:指针p指向了变量i,(变量i的地址赋给了指针p)。若:int*p=NULL;则表示p不指向任何存储单元。8.1指针的概念指针的引用:指针引用格式:①*指针变量名——代表所指变量的值;②指针变量名——代表所指变量的地址。例如:inti,*p;floatx,*t;p=&i;/*指针p指向了变量i的地址*/t=&x;/*指针t指向了变量x的地址*/*p=3;/*相当于i=3*/*t=12.34;/*相当于x=12.34*/8.1指针的概念对于:inti,

4、*p;floatx,*t;p=&i;t=&x;*p=3;*t=12.34;变量及指针的存储关系示意图如图所示:8.1指针的概念对于:inti,*p;floatx,*t;p=&i;t=&x;*p=3;*t=12.34;变量i的地址:p、&i、&(*p)变量i的值:*p、i、*(&i)小结8.1指针的概念8.1.3指针变量与简单变量的关系变量的地址值是有系统分配的,不允许改变。改变变量值的途径有3个。例1:阅读程序example8_1.c,了解简单变量与指针的关系。例2:阅读程序example8_2.c,分析程序错误的原因。#include

5、main(){int*p,*s,a;a=*p+*s;printf("a=%d*p=%lu*s=%lu",a,p,s);}将程序放到不同的环境下运行,观察结果,思考。8.2指针的运算对指针的运算,实际是对地址进行操作。8.2.1指针的算术运算指针的运算通常只限于:算述运算符:+、−、++、−−。关系运算符:<、<=、>、>=、!=、==、①+、++代表指针向前移(地址编号增大)。②−、−−代表指针向后移(地址编号减小)。设p、q为某种类型的指针变量,n为整型变量。则:p+n、p++、++p、p−−、−−p、p−q的运算结果仍为指针。8.2指针的运算若有

6、:inta=3,*p=&a;假设a的地址为3000,则p=3000。变量a与指针p的存储关系如图(a)所示。执行语句:p=p+1;后,指针p向前移动一个位置。如果a是用2个字节,则p的值为3002,如图(b)所示;如果a占用4个字节,则p的值为3004,如图(c)所示。注意:指针p指向下一个单元,但*p的值未知。例3:阅读程序example8_3,了解指针的值的变化。#includemain(){inti=108,*pi=&i;doublef=12.34,*pf=&f;longl=123,*pl=&l;printf("1:------------

7、---------------------");printf("*pi=%d,ttpi=%lu",*pi,pi);printf("*(pi+1)=%d,tpi+1=%lu",*(pi+1),pi+1);/*未知单元的值*/printf("2:---------------------------------");printf("*pf=%lf,tpf=%lu",*pf,pf);pf++;printf("*pf=%lf,tpf=%lu",*pf,pf);/*未知单元的值*/printf("3:--------------------

8、-----

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

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

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