C语言教学中的指针问题剖析

时间:2022-10-16 08:22:10

C语言教学中的指针问题剖析

摘 要 指针是C语言的核心,可以说不懂得如何应用指针,就相当于不会使用C语言。在学习C语言时,指针通常是学习的重点以及难点,学生大多会碰到诸多问题。如何让学生能够更加清晰、准确地理解指针的本质,并熟练地使用指针编写程序,是C语言教学中值得探讨的问题。

关键词 C语言 指针 教学方法

中图分类号:TP312 文献标识码:A

0引言

C语言是目前最为流行的通用程序设计语言之一,是许多计算机专业人员和计算机爱好者学习程序设计语言的首选。尽管其它诸如Java、C++、C#等等高级语言不断涌现,但是C语言的市场占有份额一直居高不下。因此,目前C语言依旧是高校计算机教学的必修课程,在计算机类相关专业的高层次人才选拔(如研究生入学考试、博士生入学考试等)过程中,仍然把C语言作为考试科目,可见C语言在计算机科学中的地位和作用。而指针就是普遍考查与拔尖考查的一个分水领,这部分知识的掌握程度将会使C语言学生在计算机程序设计语言及后续课程的学习中拉开很大的差距。

1指针的本质

指针的本质是什么呢?指针就是地址,地址就是内存中的地址,用16进制数表示,其语言中表现形式一般为:“int *p;”。在介绍不同数据类型时会讲到其占用的内存空间是不一样的,那么所占用的地址就应该在介绍数据类型时加以介绍。比如一个int变量占用2个字节的空间,其占用了如“0x0000---0x000F”这样连续的16个存储单元。而不同的指针变量指向不同的数据类型,其数据长度变化,指针所对应的存储空间跟着变化,这样理解起来直观容易。

在大多数的C语言教材里,都用专门的章节介绍数据类型,如:简单数据类型、复杂数据类型等,常见的有:int、double、char、long等,稍复杂点的有数组、结构体、共用体等。这些数据类型应用方法及使用形式基本一致,根据其在内存中的存储特性引入了变量、常量的概念,通常将程序运行过程中,其值不会改变的量称为常量,值可以改变的量称为变量。此时,大多数学生对于内存的存储方式只是有了一个初步的浅显的概念,并不能深刻理解。当学习到了指针部分,前面容易忽略的东西就显得重要了,再来回忆和讲解存储空间就显得新东西多、理解难。

为避免学生在以定义变量形成一种固定的思维模式,可以将计算机内存的数据存储形式从学习之初就全面分析;让学生形成自然的思维习惯,而到了指针章节则提出概念学生就能明白其理。当大家开始学习变量的时候,按照大多数的C语言课本都重点介绍如char数据类型占用1字节的存储空间,而对其在内存中的占用情况不加以说明;初学者往往会将如“char a,b,c;”这样的语句理解为存放在连续的内存空间中,导致这样的理解误区,自然在学习指针时又要加以纠正,事倍功半了。指针作为C语言中的一种数据类,形式上与其它的数据类型不同,使用方法多样、变化多、结构复杂、灵活。这样使得学生学习起来显得困难,效果差;而学好指针不仅对理解计算机内存工作特点、数据结构、灵活运用数据类型有很好的帮助作用,更能在学生的思维能力、逻辑能力的提高方面起促进作用。

2指针的学习

在指针部分的学习过程中,大多数学生对于概念的理解感到难度很大,究其原因,主要还是在于对“变量的指针”和“指针变量”两个概念没有理解透彻,一旦把这两个概念理解清楚了,其它诸如“数组的指针”、“数组指针”、“指针数组”、“指针函数”、“函数的指针”等概念就可以举一反三,比较容易理解了。

那么,怎么理解“变量的指针”和“指针变量”这两个概念呢?所谓“变量的指针”其实就是变量的地址,也就是这个变量在内存中占用的空间的地址,当然这个地址是系统分配的,是常量,在整个程序运行过程中,这个地址(即指针)值可以读取,但不能改变。而“指针变量”则是由编程者在编制程序时定义的变量,这个变量中存储的数据是内存地址。比如定义了变量:“int a,b;”,又定义了指针变量:“int *p;”,则可以将变量a或b的地址(即变量的指针)赋值给指针变量p,形式为:p=&a;。

在指针部分的教学过程中,使用“启发式”的方法,可以充分调动学生积极性的同时更使学生思维活跃、兴趣提高。大家都会有找人的情况出现,当出现A想找到B时;利用学生的想像力就容易得出:(1)A直接去目的地找到B;(2)通过C帮忙去找B。这样学生就知道解决问题不公可以直面面对,还可以从侧面以曲线的形式达到目的。

要想把C语言学好就应该把指针学好,而在前面的学习中诸如:“++i、i++”的这种形式,必须小心注意细节,虽然最后取出来的结果是一样的,但其变量的i的值最后得到的不一样。诸如此类的东西,大家应该将“运算符的优先顺序”在头脑中建立,然后在将这些个运算成对的罗列出来直观的跟学生分析,再遇到类似问题学生将能举一反三。

3结束语

在面向对象的程序设计语言诸如.NET、JAVA、C#等大量充斥的今天,C语言由于其经典的理念、精炼的语言结构、强大的硬件操作能力能够在嵌入式设计等领域继续稳住脚跟,这和指针的使用不无关系。学习C语言时,熟练掌握指针的应用必不可少。

参考文献

[1] 夏伟伟.C语言指针用法的探讨[J].电脑编程技巧与维护,2014(21).

[2] 许永达.C语言指针错误的分析及调试[J].计算机系统应用,2013(3).

上一篇:试述全固态DAM发射机的维护与问题分析 下一篇:冲压加工中的送料装置的研究