Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,第十四章,常见错误和程序调试,主要内容,14.,常见错误分析,14.,程序调试,14,.1,常见错误分析,忘记定义变量。,输入输出的数据的类型与所用格式说明符不一致。,未注意型数据的数值范围。,在输入语句,scanf,中忘记使用变量的地址符。,输入数据的形式与要求不符。,误把“”作为“等于”运算符。,语句后面漏分号。,在不该加分号的地方加了分号。,对应该有花括号的复合语句,忘记加花括号。,括号不配对。,14,.1,常见错误分析,(11),在用标识符时,忘记了大小写字母的区别。,(12),引用数组元素时误用了圆括号。,(13),在定义数组时,将定义的“元素个数”误认为是“可使用的最大下标值”。,(14),对二维或多维数组的定义和引用的方法不对。,(15),误以为数组名代表数组中全部元素。,(16),混淆字符数组与字符指针的区别。,(17),在引用指针变量之前没有对它赋予确定的值。,(18),switch,语句的各分支中漏写,break,语句。,(19),混淆字符和字符串的表示形式。,(20),使用自加(,+,)和自减(,-,)运算符时出的错误。,14,.1,常见错误分析,(21),所调用的函数在调用语句之后才定义,而又在调用前未声明。,(22),对函数声明与函数定义不匹配。,(,23,)在需要加头文件时没有用,#,include,命令去包含头文件。,(24),误认为形参值的改变会影响实参的值。,(25),函数的实参和形参类型不一致。,(26),不同类型的指针混用。,(27),没有注意函数参数的求值顺序。,(28),混淆数组名与指针变量的区别。,(29),混淆结构体类型与结构体变量的区别,对一个结构体类型赋值。,14,.1,常见错误分析,(21),所调用的函数在调用语句之后才定义,而又在调用前未声明。,(22),对函数声明与函数定义不匹配。,(,23,)在需要加头文件时没有用,#,include,命令去包含头文件。,(24),误认为形参值的改变会影响实参的值。,(25),函数的实参和形参类型不一致。,(26),不同类型的指针混用。,(27),没有注意函数参数的求值顺序。,(28),混淆数组名与指针变量的区别。,(29),混淆结构体类型与结构体变量的区别,对一个结构体类型赋值。,(30),使用文件时忘记打开,或打开方式与使用情况不匹配。,14,.1,常见错误分析,程序出错有,3,种情况:,语法错误,逻辑错误,运行错误,14,.2,程序调试,所谓程序调试是指对程序的查错和排错。调试程序步骤:,先进行人工检查,即静态检查。,上机调试。,在改正语法错误和“警告”后,程序经过连接(,link),就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。,