C程序设计教学探讨

时间:2022-06-29 06:20:59

C程序设计教学探讨

摘要:指针是C语言的精华,可以说没有掌握指针,就没有掌握C的精华。

关键词:指针;数组;教学方法

中图分类号:G642文献标识码:A文章编号:1009-3044(2011)18-4409-02

C Program Design Teaching is Discussed

LIU Jun

(Rugao Higher Normal School, Jiangsu Education College Rugao Sorting, Rugao 226500, China)

Abstract: Point is a soul of C language .so it is said,no mastering point ,no mastering soul of C.

Key words: point; array; teaching method

指针是C语言中一个重要而又极具特色的问题,正确而又灵活应用它,可以有效地表示复杂的数据结构;支持C语言的动态存贮分配功能;能方便有效地使用字符串和数组;能为函数提供了修改调用参数的方法和改善某些函数的效率;能直接处理内存地址等。这对利用C语言编写系统软件和应用软件极其重要。那么如何学习和掌握指针就是至关重要的问题。

1 总体教学安排

在课堂教学有限的时间内学习好指针并非易事,那么合理安排课堂教学显得尤其重要。根据教学大纲学习指针总体安排课堂教学10课时,辅加实验教学4课时,而针对的内容多而难的情况下,又如何安排?在教学中,讲解内容为:指针概念;指针变量定义;指针运算;指针的应用(包括指针变量作为函数参数)。做到概念要清晰准确易懂;重点要突出;难点要突破;疑点要思考。做到“三要”:课堂教学要认真;课后辅导要跟上;上机实验要重视。在辅导中解决疑难,在上机实践中巩固,加深理解。

2 教学安排及基本要求

以《C程序设计》谭浩强著这本教材为准,本内容属第10章,总共划分为8小节,其中数组的指针和指向数组的指针变量及字符串的指针和指向字符串的指针变量这两小节分别分配2学时;其它包括地址和指针的概念;变量的指针和指向变量的指针变量;函数的指针和指向函数的指针变量;返回指针值的函数;指针数组和指向指针的指针;及有关指针的数据类型和指针运算小结这6小节各分配1学时。

教学重点:指向变量、数组和字符串的指针变量及其应用。

教学难点:指针函数和指针数组。

熟练掌握变量、数组、字符串以及函数的指针;掌握指针概念、指针函数、指针数组和指向指针的指针。要求学生重点要多看书,多编程,多上机;难点要多思考、多对比、多总结。例如指针数组和数组指针,指针函数和函数指针的区别。总之,学习时间安排适当,学习态度认真,问题总会迎刃而解。

3 一种重要学习方法:回顾对比法

回顾对比法:顾名思义,回忆前面所学的知识,结合现今所学的新知识进行同类对比。回顾对任何人而言,都是个熟悉的字眼,在生活中、工作中及其它诸多方面都需要去回顾,在学习中也一样,尤其在指针这个难点方面的学习也同理。下面具体讲解。

3.1 普通变量和指针变量

在前面第三章已学过变量,在指针这一章中将学习指针变量,那么我们先来对比一下普通变量和指针变量,普通变量:其值可以改变的量称为变量,一个变量应该有一个名字,在内存中占据一定的存储单元,在该存储单元中存放变量的值。指针变量:存放变量地址的变量,它是用来专门存放地址的,必须将它定义为“指针类型”。先看一个具体例子:

int i, j;

int *p1, *p2;

p1=&i;

p2=&j;

第一条语句定义了两个整型变量i和j,在内存中各分配两个字节,在该存储单元中存放赋予变量i和j的整型数据;第二条语句定义了两个指针变量p1和p2,它们是指向整型变量的指针变量,定义时有别于普通变量的是变量名前必须加“*”表示指针类型,存放的是变量的地址;第三、四条语句是两个赋值语句,分别让p1和p2指向整型变量i和j,让p1存放的是整型变量i的地址,p2存放的是整型变量j的地址。重要的区别在于变量存放的是值,指针变量存放的是地址。对比理解,理解才更加深刻。

3.2 数组和指针数组

数组是有序数据的集合。数组中的每一元素都是同一类型的数据,通俗地说,数组一旦定义,数组中的每一元素都相当于一个变量,存放的是具体的值。指针数组是一个数组其元素均为指针类型数据,也就是说,指针数组中的每一个元素都相当于一个指针变量,存放的是地址。以一组数组为例:

int a[10] ;

int *p[10];

p=a;

第一条语句定义了一个整型数组a,共有10个数组元素,每个数组元素均为整型;第二条语句定义了一个指针数组,由于[]比*优先级高,因此p先与[ ]结合,形成了p[10]形式,这显然是数组形式,它有10个数据元素。再与p前面的“*”结合,“*”表示此数组是指针类型的,每个数组元素(相当于一个指针变量)都可指向一个整型变量;第三条语句p赋了一个数组的a的首地址,表示指针数组当中的每一个元素存放的是整型数组a中的每一个元素的地址。

3.3 函数和指针函数

函数就是子程序,一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。指针函数相对函数而言,区别在于带回的值的类型是指针类型。下面看一例子:

int a(int x , int y) ;

int *aa(int xx, int yy) ;

第二行表示函数aa,调用它以后能得到一个指向整型数据的指针(地址)。xx和yy是函数aa的形参,为整型。在aa的两侧分别为*运算符和()运算符。而()优先级高于*,因此aa先与()结合,显然这是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针),最前面的int表示返回的指针指向整型变量。还有数组和数组指针、字符串和字符串指针及函数和函数指针进行对比,尤其在引用上进行对比,理解起来更为容易。同类可以对比,不同类也可以对比,同类对比区别理解,不同类对比综合理解。

总之,掌握了此方法,学习本章乃至学习本书都显得易懂。在回顾中对比,在对比中掌握,这就叫作温故而掌新。

4课后反馈信息的收集及处理

千万不要错误认为课堂教学之后,便以为整个课堂教学结束,课后应多于学生沟通、交流,在沟通的过程中及时发现问题,诸如课堂教学的疏漏、缺陷;学生掌握的程度以及薄弱环节;学生的其它要求包括对上机的要求。对教学内容的疏漏应及时补充讲解;根据学生掌握程度的好坏进行课外指导复习;帮助学生解决薄弱环节;对学生合理的要求应给予协调解决,绝不容忽视。

5 教学总结

指针是一复杂问题,但应用非常广泛,所以要这一问题的课堂教学任务极其艰巨,但应把握几点:应多借鉴老教师的课堂教学经验;应多查阅相关资料以确保教学内容的正确、广泛、充实;应多和学生交流以解决相关问题;应多上机调试程序,以求弄清一些细节,积累经验。总之,在教学过程中还需要不断学习,改进和完善。

参考文献:

[1] 谭浩强.C程序设计[M].2版.北京:清华大学出版社,2002.

[2] 王小华.新编C语言实用技术大全[M].西安:陕西电子出版社,1993.

[3] Swan S.即学即用C语言[M].北京:电子工业出版社,1995.

上一篇:基于WEB环境下VB网络课程学习平台的设计与实现 下一篇:《认识计算机网络》教学设计