厦门理工学院(厦门理工大学):《高级语言程序设计》课程电子教案(PPT教学课件)第7章 指针(教师:吴芸)

及理字优 厦门理工学院高级语言程序设计敏学课件 XIAMEN UNIVERSITY OF TECHNOLOGY 第7章指针 教师:吴芸 E-Mail:you@xmut.edu.cn 厦门理工学院计算机科学与技术系 2021/2/24 XMUT 2008
XMUT 2008 厦门理工学院高级语言程序设计教学课件 第7章 指针 厦门理工学院计算机科学与技术系 2021/2/24 教 师: 吴 芸 E-Mail: ywu@xmut.edu.cn

7.0目标 口理解指针的概念 口定义指针变量 口掌握对指针的操作 口理解指针和数组的关系 及 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 2 7.0 目标 ❑理解指针的概念 ❑定义指针变量 ❑掌握对指针的操作 ❑理解指针和数组的关系

7.1指针的基本概念 1、内存地址—內存中存储单元的编号 存储地址 存储 单元 601 Q2000 2001 注意:内存单元的地址与内存单元中的数据是 4两个完全不同的概念。 大小G节单 301 302 2004 元、字单元 存储0 202 数据 ●● 101 教室号码 教室 教室有容》鬥理上字 AMEN UNIVERSITY OF TECHNOLOCY 2008 20: 52
2008 20:52 3 …... 内存 2000 2001 2002 2005 0 2003 2004 …... …... …... 7.1 指针的基本概念 1、内存地址──内存中存储单元的编号 101 102 201 202 301 302 401 402 501 502 601 602 教学楼 教室号码 存储地址 教室 存储 单元 教室有容 量 存储单元有 大小(字节单 元、字单元) 50 存储 数据 注意:内存单元的地址与内存单元中的数据是 两个完全不同的概念

2、变量地址—系统分配给变量的内存单元的起始地址 内存中每个字节有一个编号--地址 内存 i的地 址 程序中:inti; 2000 float ks 2001 2002) 编译或函数调用时为其分配内存单完 2003 k 变量是对程序中教据 k的 地址2005 存储血间的抽家 注意:在TC或BC下,系统将给变 量设配2字节的单元,而ⅴC下将是 4字节的单元! 52
2008 20:52 4 内存…... …... 0 2000 2001 2002 2005 2003 2004 …... …... 2、变量地址──系统分配给变量的内存单元的起始地址 程序中: int i; float k; 内存中每个字节有一个编号-----地址 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象 i的地 址 k的 地址 注意:在TC或BC下,系统将给变 量i分配2字节的单元,而VC下将是 4字节的单元!

00000000H 变量a 00000001H 600002 个程序片段 变量b 00000003H main 00000004H 00000005H int a=1: 00000006H float b=2 00000007H 5/+数组 intc2]={5,6}; 00000008H char d='d 00000009H 一数组c[1 0000000A ←一变量d 00000009H 及门 理 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 5 main( ) { int a=1; float b=2; int c[2]={5, 6}; char d=’d’; } 一个程序片段 变量 a 变量 b 变量 d 5 数组c[0] 00000000H 00000001H 00000002H 00000003H 00000004H 00000005H 1 00000006H 00000007H 00000008H 00000009H …... 6 0000000AH 00000009H ‘d’ 2 数组c[1]

变量的 地址 存放 变量 00000000H 的内 存单 00000001H int a 变量的值(a=1) 变量名 局部变量a的存储示意图 注:变量的地址是二进制的,为了便于书写 而在这里写成对应的十六进制形式。 及 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 6 变量名 变 量 的 地址 存 放 变 量 的 内 存 单 元 00000000H 00000001H 1 变量的值(a=1) 局部变量a的存储示意图 注:变量的地址是二进制的,为了便于书写 而在这里写成对应的十六进制形式。 int a

要访问变量首先就要知道变量的地址,可是通 过数字形式的地址值访问变量,显然是不方便的 (正如使用URL网址、域名比I地址要方便): 不便于书写和记忆,而且数字本身没有 什么具体的字面意义。 需要了解硬件细节。比如当前哪些内存 空间是空闲的等等。 失去了高级语言容易使用、接近人类语言的优点。 解决的办法: C语言提供了变量名,程序员通过变量名来访问 变量 及 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 7 要访问变量首先就要知道变量的地址,可是通 过数字形式的地址值访问变量,显然是不方便的 (正如使用URL网址、域名比IP地址要方便): ➢不便于书写和记忆,而且数字本身没有 什么具体的字面意义。 ➢需要了解硬件细节。比如当前哪些内存 空间是空闲的等等。 失去了高级语言容易使用、接近人类语言的优点。 解决的办法: C语言提供了变量名,程序员通过变量名来访问 变量

7.1,2指针 “指针就是地址” ●地址值(也就是内存单元的编址)。 ●是什么类型的数据的地址。(这就存在 着一个跨度也就是存储空间大小的问题)。 及 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 8 “指针就是地址”!!! ⚫地址值(也就是内存单元的编址)。 ⚫是什么类型的数据的地址。(这就存在 着一个跨度也就是存储空间大小的问题)。 7.1.2 指针

7.1.3指针其名 明白指针就是地址,这一点十分重要。 多数情况下,这个地址是指内存中一个变量 的起始位置。 如果一个变量包含了另一个变量的地址,那 么第1个变量就是个指针变量,而且说它是“指向” 第2个变量的,“指针”由此而得其名。 例如,如果在地址为1000的变量指向地址为 1004的变量,那么也就是说地址为1000的这个变 量的值是1004。 及 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 9 明白指针就是地址,这一点十分重要。 多数情况下,这个地址是指内存中一个变量 的起始位置。 如果一个变量包含了另一个变量的地址,那 么第1个变量就是个指针变量,而且说它是“指向” 第2个变量的,“指针”由此而得其名。 例如,如果在地址为1000的变量指向地址为 1004的变量,那么也就是说地址为1000的这个变 量的值是1004。 7.1.3 指针其名

7.1指针的基本概念 为什么要表达为“指向”呢?下一节中将会 看到如果变量p的值是变量a的地址,则可以利用 变量p来访问和操作变量a(其实这是很自然的事 情,有了某变量的地址当然就可以访问该变量)。 所以这样的变量p和a之间是有某种联系的,这种 联系就被表达为“指向”。 图7-3解释了这一点,它仅仅用来对地址进 行偏移。 10 及 XIAMEN UNIVERSITY OF TECHNOLOGY 2008 20: 52
2008 20:52 10 为什么要表达为“指向”呢?下一节中将会 看到如果变量p的值是变量a的地址,则可以利用 变量p来访问和操作变量a(其实这是很自然的事 情,有了某变量的地址当然就可以访问该变量)。 所以这样的变量p和a之间是有某种联系的,这种 联系就被表达为“指向”。 图7-3解释了这一点,它仅仅用来对地址进 行偏移。 7.1 指针的基本概念
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Visual C++编程技术》课程电子教案(讲义)第5章 菜单、工具栏和状态栏编程.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第4章 基本输入—键盘和鼠标消息.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第3章 面向对象程序设计与C++语言.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第2章 Windows编程与MFC基础.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第1章 Visual c++6.0基本应用程序的创建.pdf
- 河南工业大学:《微机原理与接口技术》第九章 中断.ppt
- 河南工业大学:《微机原理与接口技术》第八章 串行输入/输出接口.ppt
- 河南工业大学:《微机原理与接口技术》第七章 可编程接口芯片.ppt
- 河南工业大学:《微机原理与接口技术》第六章 微型计算机的输入/输出.ppt
- 河南工业大学:《微机原理与接口技术》第五章 存储器原理与接口.ppt
- 河南工业大学:《微机原理与接口技术》第四章 8086汇编语言程序设计.ppt
- 河南工业大学:《微机原理与接口技术》第三章 8086的指令系统.ppt
- 河南工业大学:《微机原理与接口技术》第二章 8086体系结构.ppt
- 河南工业大学:《微机原理与接口技术》第一章 计算机基本知识.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数与预处理命令.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 数据类型、运算符与表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 循环结构程序设计.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第四章 选择结构程序设计.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第五章 循环结构程序设计.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第六章 数组.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第七章 函数调用.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第九章 用户建立的数据类型.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第十章 文件操作.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第一章 C语言概述.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第二章 数据类型、算待与表达式.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第三章 最简单的C程序设计-一顺序程序设计.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第八章 使用指针.ppt
- 宜昌市广播电视大学:《计算机网络》PPT教学课件(共五章).ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第九章 JavaScript 中的浏览器对象.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第十章 处理表单和表单元素事件.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第一章 Dreamweaver 使用入门.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第二章 使用 Dreamweaver 制作网页.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第三章 制作动态网页.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第四章 HTML.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第五章 使用表格和表单.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第六章 层叠样式表.ppt
- 北大青鸟:《HTML—JavaScript》课程电子教案(PPT教学课件)第七章 JavaScript 语法基础.ppt