对于很多新手小白来说,第一次写程序的时候,基本上都会出现错误,我也不例外,关键是有了错误且编译器提醒了,我还是找不出来,于是乎,为了以后写代码能够尽快找出错误,我将程序可能 会出现的错误总结下来。
程序错误分为两类。一是语法错误,二是逻辑错误。
1.语法错误。
语法问题:缺少或多加了符号。这样的错误编译器一般会指明错误所在,但由于代码是彼此联系的,有时编译器给出的提示就未必是正确的,出错的地方可能是编译器提示的地方,也可能在提示的前面,也可能在前面很远的地方。有时候一个错误会让编译器给出很多错误提示,所以当面对很多行错误提示时,只修改一个地方可能就可以解决所有问题了。
还有一个是变量问题。变量未定义就使用会出错,变量名拼写有误也会出错。
2.连接错误。在使用函数调用时,如果函数名书写错误,连接器就无法找到函数对应的代码,便会提示出错,指出函数名未解析(unresolved).
3.逻辑错误。
(1)陷入死循环。变现为长时间无反应,假死。但长时间无反应不一定是陷入死循环,某些程序确实需要运行很长时间,这要仔细分析。
(2)输入输出问题。例如定义了两个变量 a,b,你想输出的是a的结果,但你在printf那要输出的是b,那么它就会输出b的值,编译器不会给你报错,因为你本来就已经定义了b了,这个是需要注意的。
说完错误的类型,接下来就是怎样去排除错误了。
语法类错误根据编译器的提示 去修改就可以了,逻辑上的修改比较难找。这时候,“分而治之”就不失为一个好方法了。常用的方法是在可能会出错的地方插入一些输出语句,看看这个区块的输出的结果是否是你想要的,然后再确定出错的区域。