《C语言程序设计》教学设计日期:年月日
教学进度设计
理解指针的概念、利用指针引用普通变量
教学详案
步骤一:复习与导入(时间:5分钟)
复习:已学过的数据类型:基本类型(整型、实型、字符型)、数组。
导入:通过指针,可以对计算机的硬件地址直接操作,在嵌入式系统与物联网软件设计中应用非常广泛,利用指针编写的嵌入式软件具有精炼、高效的优点。
步骤二:任务1:理解指针的概念(时间:10分钟)
1、对变量的访问方式:直接访问、间接访问
对变量值的存、取都是通过变量的地址进行的。例如
scanf("%d", &i); 将键盘上输入的数据送给变量i对应的
地址单元中。再如printf("%d", i); 从变量i对应的地址单
元中取出变量i的值。直接按照变量名(对应一个内存地
址)进行的访问,称为“直接访问”方式。除了采用“直指针调用成员函数
接访问”方式,还可以采用“间接访问”方式。可通过语
句“p=&i; ”将变量i的地址(2000)存放到变量p中
(变量p的值就是2000)。要读取变量i的值,可以先
到变量p,从中取出i的地址(2000),然后到地址为2000
的内存单元取出i的值(3)。
2、指针和指针变量的概念
通过变量p能够到变量i,可以说变量p指向了变量i,在C语言中,将地址形象地称为“指针”。一个变量的地址,称为该变量的“指针”。例如,地址2000是变量i的指针,而变量p用来存放变量i的地址,称为“指针变量”。
步骤三:任务2:掌握指向普通变量的指针的定义方法、引用方法(时间:40分钟)
所谓普通变量,是指基本数据类型(整型、实型、字符型)的变量。
变量的指针就是变量的地址。存放变量地址的变量是指针变量,用来指向另一个变量。
1、定义指针变量的方法
定义形式:类型标识符*变量名;
例如:int *p1; // p1是指向整型变量的指针变量
float *p2; // p2是指向实型变量的指针变量
char *p3; // p3是指向字符变量的指针变量
注意:一个指针变量只能指向同类型的变量,如p2只能指向实型变量,不能指向字符变量。
2、指针变量的引用
请牢记:指针变量中只能存放地址(指针)。
(1)运算符&和*的含义
&:取地址运算符。
*:指针运算符(或称“间接访问”运算符),取其指向单元的内容。
例如,&a表示变量a的地址,*p表示指针变量p所指向的存储单元的内容(即p所指向的变量的值)。
【例5.1】通过指针变量访问整型变量。
(2)说明
1)
2)不能直接将一个地址常数赋给一个指针变量,只有强制类型转换后才能赋值:int *p=0x12345600; //错误
int *p=(int *)0x12345600; //正确
3)注意“*p”在定义和引用中的区别:
定义时:*p的前面要有类型标识符,表示指针变量p是指向某种类型数据的。
引用时:*p的前面没有类型标识符,表示指针变量p所指向的存储单元的内容。
(3)&*p、*&a的含义
int a;
int *p=&a;
【引出问题】&*p和*&a的含义分别是什么?
“&”和“*”优先级相同,并按“自右至左”的结合性。
①&*p:先执行*p,表示变量a,再执行&运算。因此&*p与&a相同,即变量a的地址(p)。
②*&a:先执行&a,表示变量a的地址,也就是变量p,再执行*运算。因此*&a与*p 等价,即变量a。
【学习检验】教材单元练习第1、2、3题。
3、应用:通过指针变量访问整型变量
【例5.2】指针变量的应用:输入两个整数,按由大到小的顺序输出这两个整数。
【动画演示】PPT动画演示程序执行过程,进一步理解指针变量的含义和作用。
【学习检验】教材单元练习第4题。
步骤四:任务3:掌握指针变量作为函数参数的方法及用途(时间:30分钟)
1、指针变量作为函数参数,传递的信息——地址
指针变量作函数参数,其作用是将一个变量的地址传递到另一个函数中。
【例5.3】指针变量(变量的地址)作为函数参数。
【动画演示】PPT动画演示程序执行过程,理解指针变量作函数参数的应用方法。
【引导思考】实参指针和形参指针指向同一个内存单元,但它们本身是否占用相同的内存单元?(可参考教材完整代码和运行结果)。
2、指针变量作为函数参数的用途:函数调用时可得到多个要改变的值
函数调用时,传递的是变量的地址,使实参和形参指向同一个内存单元。当形参指向单元的值发生变化时,实参指向单元的值也随之变化。若想通过函数调用得到n个要改变的值:可在主调函数中设n个变量,将这n个变量的地址传递给被调函数的形参(指针变量)。实际上,数组名作为函数参数,其本质亦如此。
【例5.4】对输入的两个整数进行交换并输出。
【学习检验】教材单元练习第5题。
【课后活学活用】教材单元练习第25题。
步骤五:概括基本内容,归纳重点内容(时间:5分钟)
1、引导学生概括本次课的基本内容,归纳重点内容(指针的概念、定义指针变量和通过指针引用普通变量的方法,指针变量作为函数参数的应用方法及用途)。
2、作业布置:通过教材、PPT和在线课程,复习巩固本次课内容;完成教材相应习题,学以致用;预习下次课内容(利用指针引用数组元素)。