2013年 第22卷 第 3期 http:/w/ww.c·S-O唱.cn 计 算 机 系 统 应 用
C语言指针错误的分析及调试。
许永达
(湛江师范学院 信息与教育技术中心,湛江 524048)
摘 要:C语言指针的有些错误在程序编译阶段难以发现,且现行教材主要从概念、理论上对指针错误进行讲述,
存在不足.分析了带有此类错误的示例程序,并在VISUALC++6.0进行调试,展示此类指针错误的错误现象,分
析其产生的原因,提出正确使用指针的方法,以达到预防此类指针错误发生的目的.
关键词:C语言;指针;VisualC++6.0;调试;编程习惯
AnalyzingandDebuggingtheErrorsofC LanguagePointer
xu Yong-Da
(InformationandEducmionalTechnologyCenter,ZhanjiangNomralUniversity,Zhanjiang524048,China)
Abstract:SomepointererrorsinC Programmingarenoteasilyfoundatthecompilingphase.Thecurrentteaching
materialscannotprovidesufficientdescriptiononthoseerrors,butmainlyfocusingonconceptorhteory.Thisarticle
aimsatpreventingthoseerrorsbyanalyzinghtoseerrorsinsampleprograms,debuggingthoseerrorsinVISUALC++
6.0,showingthephenomenaofhtoseerrors,analyzinghteircauses,andputtingforwardthecorrectwaytousepointers.
Keywords:Clna guage;pointer;VisualC++6.0:debug;programmingpractice
l 引言 种在编译阶段难以发现的指针错误,并在vISuALc++
C语言功能丰富、表达能力强、使用灵活方便、 6.0中进行调试,以展示其错误现象,分析其产生的原
应用面广、目标程序效率高、可移植性好,既具有高 因,并提出正确使用指针的方法.VISUAL C抖 6.0界面
级语言的优点,又具有低级语言的许多特点,既适于 简洁,占用资源少,操作方便,在实际工作,学习中被
编写系统软件,又能方便地用来编写应用软件 l【】. 广泛使用,全国计算机等级考试二级 c语言程序设计
C语言和其它语言比较起来,指针是其特有的, 自2008年也开始以vC++6.0作为考试环境,所以本文
指针使 C更加简洁、高效,也是C语言非常流行的原 选用它作为编程和调试环境 .
因之一.利用指针可以方便地表示各种数据结构,并
能像汇编语言一样处理 内存地址,从而可以编写出精 2 指针错误的分析及调试
练而高效的程序.指针虽然强大,与之相伴的风险却 指针赋值错误,类型转换错误等的语法错误在 VC
也不小,如果使用不当,就会引起程序错误甚至崩溃, 6.0的编译阶段就可以发现,然而,指针变量实质存储的
并且有时候极难发现原 引. 是一个内存地址,当指针非法访问了该内存,就产生了
鉴于 C语言的重要性和广泛使用性,需要学习编 指针错误,此类错误在程序运行时才会出现,且其中的
程的学生,必须要学好 C语言.其中,指针是很重要, 一 些错误在调试时不能直接定位到程序的出错行,这就
也是很容易出错的部分,而有些指针错误很隐蔽,在程 增加了调试程序的难度.下文将列举此类指针错误的三
序编译阶段难以发现.目前许多教材对于指针错误都 种常见类型:1)指针在使用前未初始化;2)指针指向的
是从概念,理论上进行讲述,存在不足,本文将列举各 内存已经释放;3)指针指向的地址越界.并在VC