首页 > 范文大全 > 正文

浅谈C语言指针教学

开篇:润墨网以专业的文秘视角,为您筛选了一篇浅谈C语言指针教学范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】高职学生的基础普遍较差,数学与英语基础较为薄弱,在碰到程序逻辑思维分析,程序代码编写及调试的过程中,往往会感到困难,这是高职C语言课程教学中的共性问题。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是学生是否掌握C语言的一个标志。同时,指针也是C语言中最为困难的一部分,学生很难正确理解基本概念。

【关键词】指针;情景创设;主动探索;协作学习;游戏案例导入

一、引言

指针是C语言中广泛使用的一种数据类型,运用指针编程是C语言最主要的风格之一。正确而灵活地运用它,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组;在调用函数时能得到多于1个的值;并能像汇编语言一样处理内存地址,从而变出精练而高效的程序等,这对设计系统软件是很必要的。掌握指针的应用,可以使程序简洁、紧凑、高效。指针极大地丰富了C语言的功能。每一个学习和使用C语言的人,都应当深入地学习和掌握指针。可以说,不掌握指针就是没有掌握C语言的精华。

二、教学现状

高职学生的基础普遍较差,数学与英语基础较为薄弱,在碰到程序逻辑思维分析,程序代码编写及调试的过程中,往往会感到困难,这是高职C语言课程教学中的共性问题。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是学生是否掌握C语言的一个标志。同时,指针也是C语言中最为困难的一部分,学生很难正确理解基本概念,就指针的教学谈谈自己的想法。

三、教学方法

1、情景创设教学法。课堂教学是获取知识和技能的主要阵地,应当成为培养学生独立思考的摇篮。情景创设教学方法把学习设置到简单的、有意义的问题情境中,学生通过互相合作来解决这些问题,发现隐含于问题背后的科学知识,形成让学生掌握解决问题的技能和提高自主学习的能力。例如,讲解指针的基本概念,计算机中的所有数据都是顺序存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同数据类型的值所占用的内存单元数亦不同。为了正确地访问这些内存单元。内存单元的编号也叫地址,通常也把这个地址称为指针。内存单元的指针和内存单元的内容是两个不同的概念。为让学生掌握并理解内存单元的指针和内存单元的内容,我采用了情景创设的教学方法。我们到银行去存、取款时,银行工作人员将根据我们的账号去查找存款单,找到之后在存单上写入存款、取款的金额。在这里,账号就是存单的指针,存款数就是存单的内容。这样就能让学生明白内存单元的指针和内存单元的内容之间的关系了。

2、主动探索、协作学习教学法。根据已有信息,从不同角度、不同方向思考问题,从多方面寻求多样性答案的一种思维形式,是主动探索的教学方法。为走出传统教学中的泥滩,教师应转变教学观念,砸碎应试教育的模式和框架,克服单纯传授知识的倾向,注重顺向思维、逆向思维、多向思维的训练,培养学生思维的深刻性、批判性和创新性。具体来讲,就是要通过挖掘教材中能一题多解、一法多用、一题多变的教学内容,来引导学生主动探索,使他们的思考朝多种方向扩散,提出各种设想、多种解答。在指针教学中还可以进行协作学习中培养学生们的思维。协作学习是在解题中,尽可能利用自己已有的知识和经验与同学一起讨论,将不同的方法进行比较,从中确定出最佳方案。在教学中,引导学生从不同方向利用其他学科的理论,开阔思路,找出解决问题的多种方法。然后在众多的解法中,经过归纳、判断和比较,最终得出一个最优化的结论。比如在教学生如何通过指针引用数组元素,先请学生协作学习开阔思路用不同方法编写“输出数组中的全部元素”程序。

方法一:下标法

方法二:通过数组名计算数组元素地址,找出元素的值

方法三:用指针变量指向数组元素

通过该教学方法,这个知识点学生掌握得很好,找出解决问题的多种方法,能深刻地、高水平地掌握知识,并能把这些知识广泛应用到学习新知识的过程中,举一反三,提高了对知识的理解能力,使学习活动顺利进行。

3、游戏案例导入教学法

在指针教学中通过游戏案例导入教学法可以营造学生独立思考的心理氛围。在分析指向多维数组的指针和指针变量中的“多维数组的地址”知识点,我先请同学做游戏,一个当“排长”,三个当“班长”,十二个当“战士”,游戏是:有一个排,下设3个班,每个班有4名战士。规定排长只管理到班,班长管理战士。在排长眼里只有第0、1、2班。排长从第0班的起始位置走到第1班的起始位置,看来只走了一步,但实际上他跳过了4名战士。为了找到某一班内某一个战士,必须给两个参数,即第i班第j个战士,先找到第i班,然后由该班班长在本班范围内找第j个战士。这个战士的位置就是a[i]+i.。开始时班长面对第0个战士。注意,排长和班长的初始位置是相同的。但他们的“指向”是不同的。排长“指向”班,他走一步就跳过1个班,而班长“指向”战士,走一步只是指向下一个战士。可以看到排长是“宏观管理”,只管班,班长则是“微观管理”,管理到战士。如果要找第1班第2个战士,则先由排长找到第1班的班长,然后,由班长在本班范围内找到第2个战士。二维数组a相当于排长,每一行(即一维数组a[0]、a[1]、a[2])相当于班长,每一行中的元素(如a[1][2])相当于战士。

请同学们打开书,仔细看插图,边看边想:谁是排长?班长在哪儿?管多少个战士?

这段游戏导入把贯穿全文的线索用三个问题串起来,让学生从静态的图中找答案,思考、讨论结果。这一过程学生的思维也是最活跃的,对问题的思考是深入而全方位的,这些问题激发了学生们的心理驱动力,在讨论争议中,让学生迸发出创新思维的火花。

四、总结

指针是C语言的精髓,不能熟练地使用指针,就不算学会了C语言。在教学过程中我采用多种新型教学方法与学习方法的综合运用,能让学生掌握指针编程,编写高质量的程序。从实践看,学生学习指针的兴趣的培养,并不是一朝一夕,一蹴而就的,这需要我们教师不断地摸索,努力地更新传统的教学观念,适时地抓住课堂教学的点滴契机,启发引导,让学生在学习中不断创造,在创造中不断学习。