内容正文:
课题
猜数字游戏
课时
2课时(90 min)
教学目标
知识目标:
(1)理解指针的相关概念
(2)掌握指针变量的定义、初始化和引用方法
(3)掌握空指针和void指针的使用方法
能力目标:
能在程序中综合运用指针变量
素质目标:
通过学习指针变量,增强创新意识
教学重难点
教学重点:指针的基本概念,指针变量的定义及初始化,指针变量的引用,空指针和void指针
教学难点:指针变量的引用
教学方法
问答法、讨论法、讲授法、实践法
教学用具
电脑、投影仪、多媒体课件、教材
教学过程
主要教学内容及步骤
课前任务
【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,完成课前任务
请同学们设计一款简单的猜数字游戏,并说明游戏设计思路。
【学生】完成课前任务
考勤
【教师】使用文旌课堂APP进行签到
【学生】班干部报请假人员及原因
问题导入
【教师】请同学们扫码观看“变量的访问方式”视频(详见教材),讨论并回答以下问题:
变量的访问方式可分为哪几种?什么是指针?什么是指针变量?
【学生】思考、举手回答
传授新知
【教师】讲解指针的基本概念,指针变量的定义及初始化,指针变量的引用,空指针和void指针
一、指针的基本概念
✈【教师】介绍指针的概念,指针变量的概念
每个变量在内存中都占用一定的存储空间,不同数据类型的变量占用的字节数是不一样的。例如,整型变量占用4个字节,字符型变量占用1个字节。为了正确地访问这些变量,内存中的每个字节都会被编上号码,且每个编号都是唯一的,因此,可以根据编号准确地找到存储在某个字节中的数据。这个内存单元的编号就称为内存地址,即指针。例如,在格式输入语句“scanf(“%f”,&x)”中,&x为变量x的指针(内存地址)。
在C程序中,允许用一个变量来存放指针,这个变量称为指针变量,而指针变量的值就是某个内存单元的地址。
【课堂讨论】
✈【教师】请学生分组讨论以下问题
请同学们以小组为单位,讨论指针变量的值与普通变量的值有何区别。
✈【学生】讨论、总结、回答
✈【教师】总结学生的回答
二、指针变量的定义及初始化
✈【教师】多媒体观看“指针变量”视频(详见教材),让学生了解指针变量的定义及初始化
1.指针变量的定义
与普通变量一样,指针变量也必须“先定义后使用”。定义指针变量的一般形式如下。
类型说明符 *指针变量名1,*指针变量名2……;
其中,“类型说明符”是指针指向的目标数据的类型;指针变量名前的“*”表示该变量的类型是指针型变量,不能省略。例如:
int *p1; /*定义指向整型变量的指针变量p1*/
char *p2,*p3; /*定义指向字符型变量的指针变量p2和p3*/
其他类型的变量允许和指针变量在同一个语句中定义。例如:
int m,*p;/*定义2个变量,其中m是整型变量,p是指向整型变量的指针变量*/
2.指针变量的初始化
可以在定义指针变量的同时为其赋初值,即指针变量的初始化。由于指针变量是指针类型,故所赋初值应是一个地址值。其一般形式如下:
类型说明符 *指针变量名1=地址1,*指针变量名2=地址2……;
例如:
int i;
int *p=&i; /*定义指针变量p指向整型变量i*/
表示地址的形式可以是“&变量名”“数组名”“其他指针变量”等。例如:
char s[20];
char *str=s; /*定义指针变量str指向字符数组s的首地址*/
【课堂问答】
✈【教师】随机邀请学生回答以下问题
请同学们思考,上次课中数组名作为函数参数,实际上传递的是什么?
✈【学生】聆听、思考、回答
✈【教师】总结学生的回答
三、指针变量的引用
✈【教师】介绍指针变量引用的三种情况:给指针变量赋值,引用指针变量指向的变量,引用指针变量的值
引用指针变量时,一般包括以下三种情况。
1.给指针变量赋值
在程序执行过程中,可以使用赋值语句为指针变量赋值,一般形式如下:
指针变量=地址;
例如:
int a=20,b=30,*p1,*p2;
p1=&a; /*把变量a的地址赋给指针变量p1*/
p2=&b; /*把变量b的地址赋给指针变量p2*/
在此例中,定义了两个整型变量a和b,a的初值为20,b的初值为30;定义了指针变量p1指向变量a,指针变量p2指向变量b,其相互之间的关系如图7-1所示(详见教材)。
指针变量和一般变量一样,存放其中的值是可以改变的,即可以改变它们的指向。例如,在上述定义语句后,执行赋值语句“p2=p1;”,则p2与p1指向同一对象a,此时*p2就等价于a,而不是b,如图7-2所示(详见教材)。
✈提示
(1)“&”运算符是取地址运算符,其功能是返回其后所跟操作数的地址,其结合性为从右