第8章 指针(一)(教案)-《C 语言程序设计》同步教学(电子工业版)

2024-11-21
| 5页
| 98人阅读
| 0人下载
普通

内容正文:

章 节 第8章 指针(一) 目 标 1、熟练掌握指针的概念、含义、用法; 2、掌握不同类型指针的区别、指针的基本运算、指针与数组的关系; 主要内容 1、指针数据类型,指针变量的定义、初始化和引用 2、用指针变量作函数参数,传地址调用 3、指针数组 4、指针和字符串 重 点 难 点 指针的概念、用途、基本运算。 教授思路,采用的教学方法和辅助手段,板书设计,重点如何突出,难点如何解决,师生互动等 主要思路: 用图示的方法说明指针的概念。通过问题“如何保存一个数据存储区域的地址”的解决方法引出指针变量的概念,进一步说明指针变量定义的一般格式。 用讲解加举例的方法说明 & 和 *操作符的用法。 用图示方法说明运算符 +、-、++、-- 应用于不同类型指针时的区别。 一、概述 · 指针是C语言的一个重要概念,也是C语言区别于其他程序设计语言的最重要特征之一,正确、灵活地使用指针可以设计出结构紧凑、效率更高的应用程序。 · 指针的三种主要用途 · 实现数组的快速访问 · 允许函数修改其调用参数 · 为使用C语言中的动态内存分配函数提供支持,以便于实现链表和其他的动态数据结构。 1、内存和内存地址的概念 (1)什么是内存 (2)什么是内存地址 (3)内存单元的基本属性 值、地址 (4)内存单元的划分和内存单元的值与地址的关系图 2、变量的访问方式 (1)直接访问方式 (2)间接访问方式 3、指针和指针变量 常用的概念和术语: (1)指针 (2)指针变量 (3)一些术语 · 当指针变量存储了另一个变量的地址时,通常说该指针变量指向了这个变量。 · 当一个指针变量指向一个变量后,也说该指针变量有了指向。 · 一般地,在不致于引起混淆的情况,也把指针变量简称为指针。 4、指针变量和普通变量的关系 二、指针类型数据及其操作 1、指针变量的定义 指针变量定义的一般格式: 基类型 *指针变量名[=初始值]; 2、指针变量的引用 (1)运算符: · 取地址运算符(&) · 间接访问运算符(*) (2)使用指针变量的注意事项 · 在特定的系统中,指针变量所占用的内存空间大小固定不便,和基类型无关。 · 使用指针变量前要进行初始化,即要让指针变量有一个指向。 · 指针变量和普通变量一样都有地址和值,但指针变量的值是其他对象的地址,而普通变量的值是一般意义下的数据。 · 基类型不是“指针类型”,而是指针变量所指向对象的类型,它实际上限定了当用指针变量访问该指针变量所指向的内存空间时,将把这块内存空间中的内容当做什么类型的数据来看待。 · 所有的指针运算都和基类型相关联,所以正确说明指针的基类型非常重要。 3、指针数组 定义指针数组一般格式: 基类型 *指针数组名[整数表达式]={初始值列表}; 三、指针变量作函数参数 (1)地址传递的概念 (2)示例: (3)参数传递程序举例 无类型指针作为函数参数的程序示例 四、指针变量的运算 1、指针变量的赋值运算 · 把一个变量的地址赋给指向相同数据类型的指针变量 · 把一个指针变量的值赋给另一个指向相同类型的指针变量 2、指针变量和整数的加、减运算 一般格式: p = p ± n (假设,p是一个指针变量,n是一个整数) p的新值 = p的旧值 ± n * sizeof(指针基类型) 3、指针变量的关系运算 4、指针变量的相减运算 五、多级指针 1、多级指针的概念和构造方式 2、二级指针的定义 基类型 **二级指针变量名[=初始值]; 3、二级指针的操作 六、指针和数组的关系 1、指针和一维数组 指针和数组有紧密的联系,数组名代表了整个数组的首地址,即数组名是一个指针。对数组元素的访问通常有两种方法,一种是下标法,另一种是指针法。 2、指针和二维数组 数组名a代表了整个二维数组的首地址,即第1行的首地址,a+1代表了第2行的首地址,a+2代表了第3行的首地址。由于a[0]、a[1]、a[2]又都是一维数组,因此它们又分别代表一个一维数组的首地址,例如,a[0]代表的一维数组是:a[0][0]、a[0][1]、a[0][2]、a[0][3]。 七、指针和字符串 在C语言中,字符串被定义为是一个以空字符终结的一维字符数组,因此,可以使用char类型的指针变量来处理字符串。char类型指针变量通常称为字符指针变量。 1、字符指针变量的定义形式 char *指针变量名[=初始值]; 2、字符指针变量的赋值 3、示例程序 整理字符串: 将字符串的前导空格和后随空格删除,并将字符串中非空格字符串之间的连续的多个空格只保留一个,而删除多余的空格。 · 编程思路: (1)从最后一个字符开始往回检查字符串,当遇到第一个不是空格的字符时,将该字符后面的那个字符设置为0,并停止检查;这样就删除了字符串的尾部空格。 (2)从第一个字符开始检查字符串,当遇到第一个不是空格的字符时,记录下该字符的位置,设此时的位置为pos,并停止检查;这样从pos开始,以后的字符串就相当于删除了原字符串的前导空格。 (3)用malloc函数产生一个适当大小的临时字符串,让一个指针q指向这个临时字符串,另一个指针p指向原字符串的pos位置。用指针p循环检测原字符串,当检测到不是空格的字符时,将该字符保存到q指向的临时字符串中;当检测到连续的空格时,只向q指向的临时字符串中存储一个空格;并调整q指向的位置。 (4)将临时字符串拷贝到原字符串,删除临时字符串。 学科网(北京)股份有限公司 FFFF FFFF 地址 0012 FF7C 9 8 7 …… 0012 FF74 0012 FF78 0012 FF7C …… 变量x 变量y 变量z 指针变量ptr 内存 $$

资源预览图

第8章  指针(一)(教案)-《C 语言程序设计》同步教学(电子工业版)
1
第8章  指针(一)(教案)-《C 语言程序设计》同步教学(电子工业版)
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。