圳职业技术学院 Shenzhen Polytechnic 第七单元(2):指针与数组 教学内容 指针与数组 教学目标 应知 数组的指针的意义,数组元素的指针的意义,数组名作函 数参数 应会 通过指针引用数组元素,数组名与数组的指针作函数参数 驅指针引用数组时指针的定位 教学方法 项目递进驱动教学法,通过数组的几种表示方法引入数组的指针 教学过程 提问与复习 I what's a point of a variable? What's is the characteristic of the function result when the parameter is a pointer? 2.输出数组inta[10]各元素的值,采用如下三种方法 下标法(复习数组的定义、引用,数组下标从0开始)(提问) 数组名寻址法(引入数组的地址)(学生易错:数组名是一个常量,不能出现在赋 值号的左边) 通过数组名计算数组元素的地址,找出元素的值 指针法(引入数组的指针)(指向数组的指针是一个变量,可以有运算) 用指针变量指向数组元素 3.将第2步数组的输入采用指针实现,再用指针方法输出(观察程序,修改 程序,学生易错:必须明确指针当前所指的元素) 4.通过实例熟悉指针运算(指向数组的指针变量在使用中要注意): *p++等价于*(p+):符合十十运算符的规律 *++与*(++p):符合+十运算符的规律 计算机系乌云高娃 Wygwl2lcn, com第54页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 54 页 共 83 页 第七单元(2):指针与数组 教学内容 指针与数组 教学目标 应知 数组的指针的意义,数组元素的指针的意义,数组名作函 数参数 应会 通过指针引用数组元素,数组名与数组的指针作函数参数 难点 指针引用数组时指针的定位 教学方法 项目递进驱动教学法,通过数组的几种表示方法引入数组的指针 教学过程 1. 提问与复习 what’s a point of a variable? What’s is the characteristic of the function result when the parameter is a pointer? 2. 输出数组 int a[10]各元素的值,采用如下三种方法: 下标法(复习数组的定义、引用,数组下标从 0 开始)(提问) 数组名寻址法 (引入数组的地址)(学生易错:数组名是一个常量,不能出现在赋 值号的左边) 通过数组名计算数组元素的地址,找出元素的值 指针法 (引入数组的指针)(指向数组的指针是一个变量,可以有运算) 用指针变量指向数组元素 3. 将第 2 步数组的输入采用指针实现,再用指针方法输出(观察程序,修改 程序,学生易错:必须明确指针当前所指的元素) 4. 通过实例熟悉指针运算(指向数组的指针变量在使用中要注意): *p++ 等价于*(p++):符合++运算符的规律 *p++ 与 *(++p) :符合++运算符的规律
圳职业技术学院 Shenzhen Polytechnic (*p)++:p所指向的元素值加1 厚p+n,(p-n):将指针从当前位置前进或后退n个元素 2-p1:表示两指针变量之间数组元素的个数,而不是指针的地址之差 5.编程训练:通过指向数组的指针,将数组a中的最大数与最小数输出 定义数组inta[10],指针int*,存放最大值最小值的变量max和min 将指针指向该数组,p=a 从键盘输入数组数据(采用指针法) 将max与min赋值为a[0] 在循环中依次进行比较,将比较大、比较小的元素值存入max,min 输出max和min,应为数组a中的最大值和最小值 6.编程训练:通过指向数组的指针,将数组a中的最大数与最小数输出 实参和形参都用数组名 厚实参用数组名,形参用指针 实参用指针,形参用数组名 厚实参和形参都用指针 学生容易出错的地方 指向数组的指针移动后没有重新指向数组头部 对数组名赋值,数组名是常量不能进行赋值 问题与讨论 形参是数组的指针时,实参可以是什么? 数组名和指向数组的指针有什么异同? 小结(可由问题与讨论方式给出) 数组的指针是数组在内存中的起始地址,数组元素的指针是数组元素在内存中的起 始地址 粤数组名是常量,代表数组的起始地址,也就是第一个数组元素的地址 计算机系乌云高娃 Wygwg2lcn. com 第5页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 55 页 共 83 页 (*p)++ :p 所指向的元素值加 1 p+n ,(p-n):将指针从当前位置前进或后退 n 个元素 p2-p1 :表示两指针变量之间数组元素的个数,而不是指针的地址之差 5. 编程训练:通过指向数组的指针,将数组 a 中的最大数与最小数输出 定义数组 int a[10],指针 int *p,存放最大值最小值的变量 max 和 min 将指针指向该数组,p=a; 从键盘输入数组数据(采用指针法) 将 max 与 min 赋值为 a[0] 在循环中依次进行比较,将比较大、比较小的元素值存入 max,min 输出 max 和 min ,应为数组 a 中的最大值和最小值 6. 编程训练:通过指向数组的指针,将数组 a 中的最大数与最小数输出 实参和形参都用数组名 实参用数组名,形参用指针 实参用指针,形参用数组名 实参和形参都用指针 学生容易出错的地方 指向数组的指针移动后没有重新指向数组头部 对数组名赋值,数组名是常量不能进行赋值 问题与讨论 形参是数组的指针时,实参可以是什么? 数组名和指向数组的指针有什么异同? 小结(可由问题与讨论方式给出) 数组的指针是数组在内存中的起始地址,数组元素的指针是数组元素在内存中的起 始地址 数组名是常量,代表数组的起始地址,也就是第一个数组元素的地址
圳职业技术学院 Shenzhen Polytechnic 粤指向数组的指针变量同样要经过定义、赋值才能引用 指向数组的指针变量可以改变本身的值 数组名和指向数组首地址的指针变量作函数参数时,效果是一样的.即实参与形参 结合后,形参数组与实参数组占用同一段内存空间,在函数中改变数组会使主函数 中的数组发生变化 课后任务 p.118,11.4 计算机系乌云高娃 Wygwl2lcn, com第56页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 56 页 共 83 页 指向数组的指针变量同样要经过定义、赋值才能引用 指向数组的指针变量可以改变本身的值 数组名和指向数组首地址的指针变量作函数参数时,效果是一样的.即实参与形参 结合后,形参数组与实参数组占用同一段内存空间,在函数中改变数组会使主函数 中的数组发生变化. 课后任务 p.118,11.4