c语言指针教学设计,【C++/C语言的多重指针课堂教学设计】 C和指针

摘要:依照“先易后难”、“循序渐进”等教学原则,给出了一个“C++/C语言的多重指针”课堂教学设计,并且结合例子给出了具体的教学过程、给出了其中各个主要步骤的教学目的、分析了该设计的教学效果。

关键词:C++/C 指针 教学设计

引言

“C++/C”是一门计算机程序设计高级语言,内容丰富,其中的“指针”部分是重要内容之一。“指针”中的“多重指针”是教学难点,普遍认为这个内容“难教难学”。如何突破这个教学难点?在现有的相关文献中是否有成功的方法可以借鉴?文献[1]是介绍“C++”的著名教材。在这本书里,作者用两个例子完成了“多重指针”的介绍:第一个例子是“指针数组”,第二个例子是“指向该数组元素的指针”,即“指向指针的指针”。这两个例子,难度跨度过大,学生不容易理解和掌握该概念。文献[2]将二重指针分别和变量以及数组结合在一起, 讨论了二级指针变量与二级指针数据的用法与区别。除了上述文献之外,还有不少文献讨论C++/C教学法。文献[3] 提出了C++/C教学的“指导思想”:“正确处理新理论、新技术与旧内容的关系”等。文献[4] 提出了如下教学方法:采用启发式教学、采用任务驱动教学法、采用“框架法”和“求异法”和采用“多媒体”等。文献[5] 结合教学实践,提出了“渐进式教学法”和“启发式教学法”,主张通过“编程”来理解新概念,通过“由易到难”启发学生并引入新概念。

受以上参考文献启发,本文将提出一个突破该教学难点的教学过程,以课堂教学设计的形式介绍于下:

一、C++/C多重指针的课堂教学设计

我们先将教学的基本条件以及学生的基本情况做一介绍,然后再谈课堂教学设计的内容和步骤。

(一)教学的基本条件

一间教室,可容纳100人左右,配备有多媒体教学设备。

(二)学生的基本情况

学生在接触C++/C之前仅学过《计算机应用基础》,从未接触过另外的编程语言,也没有学过另外的计算机课程。对于该课程,学生已学过“函数”、“数组”和“单重指针”等内容。

(三)教学目的

让学生理解并掌握概念:“二重指针”和“多重指针”。

(四)教学设计的基本思想

基于以上的教学基本条件和学生的实际情况,笔者认为应该按以下原则进行教学:

先简后繁,先易后难,循序渐进,前后对比,归纳总结。

下面我们按这个原则设计教学过程。

(五)教学过程

预备:在课堂上,老师降落银幕,打开投影仪,启动电脑,启动VC系统,进入编辑界面;老师组织学生简单地复习一下指针的概念,然后介绍下面的内容:

1、多重指针(含单重指针,下同)与变量的关系

我们将通过一个简单例子,引入多重指针的概念,并举例该概念的初步应用。在这里,老师结合下例指出:一个变量对应一个内存单元,我们可以用一重指针变量指向这个内存单元,如果有必要的话,也可以用多重指针变量通过特定的传递关系指向这个内存单元。

老师将下列程序输入系统并运行,将结果输出到银幕上:

void main()

{int a=12,*p, **q,***r ;

p=&a;

q=&p;

r=&q;

cout  cout  cout  cout  cout  银幕上显示的结果是:

12,12,12,12

13,13,13,13

14,14,14,14

15,15,15,15

16,16,16,16

当上面的程序运行结束之后,老师面向学生分析上述程序:

该程序的前三条语句“p=&a; q=&p; r=&q;”,其功能对应下面的示意图:

变量a是一个已经初始化或者赋值的整形变量,语句“p=&a;”规定了一重指针变量p指向变量a;语句“q=&p”规定了二重指针变量q经过一重指针变量p指向变量a;语句“r=&q;”规定了三重指针变量连续经过两个指针变量q和p而指向变量a。四条语句“a=13; *p=14;**q=15;和***r=16;”的功能都是对同一个变量a赋值,以上程序运行结果也验证了这一点。

老师还应指出:三条语句“p=&a; q=&p; r=&q;”是有序的,是由p、q、r的定义所规定的,不可颠倒顺序,也不能“越级”,譬如“*q=&a;”或者“q=&a;”都是错误的,当然“**r=&a”或者“*r=&p”也是错的。另外,“&(&a)”总是错的,因为符号“&”是取变量的地址,而地址,譬如&a,是“值”而不是变量,所以 “&(&a)”无意义。

老师还应强调指出:此例中的int可用float、double或者char代换,其程序和结论相同,但应该注意的是,当用类型char代换int之后,给变量赋值时可赋字符形的,也可赋整形的。

最后,老师可以补充:此例中的变量a,也可以是数组元素,因为一个数组元素等价一个变量,只是命名规则不同而已。

2、多重指针与字符串(或者字符数组)的关系

这一步骤是为介绍“指针数组和多重指针”做准备,同时也是为了拓宽多重指针的应用范围。

在讨论“多重指针与字符串(或者字符数组)的关系”之前,老师应强调:在C++/C语言里,字符串有其特殊的操作规则,特别是将一个字符串常量赋给一个字符指针或者输入到一个字符数组时,该指针或者数组名接收该字符串首字符的地址,而不是接收字符串本身,将字符串和多重指针结合时更要注意这一点。另外,要输出整个字符串,只需将该字符串的首字符地址置入输出语句即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值