《C语言程序设计》教案
第十六学时
教师姓名
李思广
授课班级
05计应1-2
授课形式
讲授
授课日期
2006 年 5 月 12 日 第 10 周
授课时数
2
授课章节名称
第10章 指针应用(2/2)-数组的指针和指向数组的指针变量
教学,目的
1、 数组的指针及指向数组(或数组元素)指针变量
2、 指向数组的指针作为函数参数
教学重点
1、 数组的指针及指向数组(或数组元素)指针变量
2、 指向数组的指针作为函数参数
教学难点
无
使用教具
无
教学内容
引言
复习指针基本概念,指针变量定义、初始化、引用。本节介绍指针变量的应用-数组的指针。
l 数组:相同类型元素构成的有限、有序的序列。
l 数组元素的指针-数组元素的地址
l 数组的指针-数组的地址,数组的起始地址,第一个元素的地址(首地址)。
C语言用数组名代表数组的起始地址(首地址)。
例如:int a[10];数组的指针-a或&a[0],
讲授-指针应用(数组的指针、指向数组的指针变量)
一、指向数组的指针变量
1、指向数组的指针变量:就是指向数组元素的指针变量,也就是指向基类型的指针变量并将其初始化指向数组。
例如:数组int a[10];其中每个元素为整型变量。可以定义一个指向整型变量的指针变量int *p;并将p初始化为&a[0]或a。此时可以将p称为指向数组的指针变量。
2、数组的指针变量的定义和初始化
数组基类型 *p; p=数组名;/* p=&数组名[0] */
或:数组基类型 *p=数组名;
二、通过指针引用数组元素 (假设int a[100]; int *p=a; 即指针p指向数组)
1、 指针a+i、指针变量p+i的含义。存在a[i]、是否有p[i]?-C允许p[i]!
2、 指针与数组的关系。数组元素可以用下标访问,也可以用指针访问。
3、 通过指针引用数组元素。
(1) 数组元素的地址表示:&a[i],p+i,a+i。
(2) 数组元素的访问:a[i],*(p+i),*(a+i)。
(3) 指向数组的指针变量,数组名在许多场合可以交换使用。a[i]甚至可以表示为p[i]。
注意:
(1) 引用数组元素可以采用下标法和指针法。(假设p=a)
下标法:a[i],p[i];指针法:*(a+i),*(p+i)
(2) 数组名是常量指针,指向数组的指针变量是变量。例10-3.P141-P142。
(3) 注意:使用数组的指针变量,如果改变了其值,那么应当关注其当前指向的位置。必要时可以重置指针。参阅P143例子。(详细分析见教材p143)
三、数组名作为函数参数(基本等价于用指向数组的指针作函数参数)
1、复习例8-4(P.110)
形参数组的数组名b接受了实参数组a的首地址-不严格。接受地址的变量是指针变量。
C编译系统将形参数组名作为数组的指针变量来处理。所以形参float b[]即:float *b。
思考:本例如何用指针改写。
2、例10-4.(P.144)来源于例7-4选择法排序。(使用函数、形参使用指针)
同样,本例也可以将形参改写为用形参数组表示。思考:如何改写?
3、数组作为函数参数,使用指针更加灵活。
例10-5.P145。将数组前n个元素逆序存放。注意:指针在移动。
点名、课堂提问讨论
小结、作业布置
2
展开阅读全文