声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。
当排除了所有的语法错误,但运行结果却不正确时,很多初学者往往束手无策,只好求助老师了,“老师,我这个程序没错,但结果不正确”,这是在上机课上经常听到的声音。初学者缺乏经验,也缺乏耐心。殊不知每个程序员都是在不断的和错误斗争的过程中成长起来的,调试程序的过程有时候是很痛苦的,但发现错误原因的那一刻,幸福却是满满的。
调试程序的方法很多,但对于初学者来说,用好printf基本就能解决大多数问题,可以说简单实用。当程序编译报错时,我们一般能很快解决问题,那是因为编译器明确地告诉你哪一行有问题。但当编译没错,程序运行结果出错时,没有人告诉我们错在哪里,这时候就需要自己想办法去确定错误的位置。printf函数就是用来确定错误位置的一把利器。运行结果不对时,错误可能发生在程序的任意一行,我们可以从打印结果的代码开始倒着往回寻找,适当的打印出一些中间结果(变量或者表达式的值),如果发现某个中间结果和你期望的值不同时,就进一步去检查和分析与这个中间结果相关的语句,有必要的话可以继续输出一些变量进行观察。通过这种不断打印中间结果进行观察和分析的方法,往往很快就能定位错误的位置。下面通过