最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt

最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt

ID:62067758

大小:893.00 KB

页数:36页

时间:2021-04-14

最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt_第1页
最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt_第2页
最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt_第3页
最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt_第4页
最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt_第5页
资源描述:

《最新C语言-第13章_常见错误分析教学讲义PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言-第13章_常见错误分析技能目标1、了解C语言程序代码调试过程中常见错误2、掌握C语言程序代码调试的方法以及排错的技巧本章要点:13.1编译错误13.2链接错误分析13.3诊断错误及其处理13.4C语言调试过程中常见的错误信息1在使用变量前未定义。例如:main(){a=1;b=2;printf(″%d\n″,a+b);}13.2连接错误分析2、定义或引用数组的方式不对。在对数组进行定义或对数组元素进行引用时必须要用方括号(对二维数组或多维数组的每一维数据都必须分别用方括号括起来),例如以下写法都将造成编译时出错:3、混淆字符和字符串C语言中的字符常量是由

2、一对单引号括起来的单个字符;而字符串常量是用一对双引号括起来的字符序列。字符常量存放在字符型变量中,而字符串常量只能存放在字符型数组中。例如,假设已说明num是字符型变量,则以下赋值语句是非法的:4、在引用数组元素或指针变量之前没对其赋初值。5、混淆数组名与指针变量在C语言中,数组名代表数组的首地址,它的值是一个常量,不能被修改。例如,在以下程序段中,用a++是不合法的。6、混淆不同类型的指针。若有以下语句:int*p1,a=1;float*p2;p1=&a;7、混淆指针说明语句中的*号和执行语句中的*号。设有以下说明语句:int*p1,i=1;8、误将函数形参和

3、函数中的局部变量一起定义。例如:fun(x,y)floatx,y,z;{x++;y++;z=x+y;┇}9、所调用的函数在调用前未定义。10、混淆结构体类型名和结构体变量名若定义了以下结构体类型student:structstudent{longintnum;charname[20];intage;floatscore;};则赋值语句:student.num=199401;是错误的。1=不同于==符号=作为赋值运算符,符号==作为比较。一般而言,赋值运算相对于比较运算出现得更频繁,在C语言中赋值符号被作为一种操作符对待。2字符与字符串C语言中的单引号和双引号含义迥

4、异,用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值,而用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为零的字符‘’初始化。13.3诊断错误及其处理3整数溢出C语言为编程者提供了三种不同长度的整数:shortint、int和longint,但不管是哪种类型表示的整数总有一定的范围,越出该范围时称为整数的溢出。4词法分析中的“贪心法”“贪心法”,即从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字

5、符串是否可能是一个符号的组成部分;如可能,再读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号为止。程序调试是指对程序的查错和排错。调试程序一般应经过以下几个步骤:一、先进行人工检查,即静态检查。二、在人工检查无误后,再上机调试。三、在改正语法错误(包括“错误(error)”和“警告(warning)”)后,程序经过连接(link)就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析,看它是否符合要求。有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。13.4C语言调试过程中的

6、常见错误C语言程序调试总之,程序调试是一项细致深入的工作,需要下功夫,动脑子,善于积累经验。在程序调试过程中往往反映出一个人的水平,经验和态度。希望大家给以足够的重视。上机调试程序的目的决不是为了“验证程序的正确”,而是“掌握调试的方法和技术”,要学会自己找问题,这样慢慢自己就会写出错误较少的实用程序。C语言程序调试警告类错误‘XXX’declarebutneverused变量XXX已定义但从未用过。‘XXX’isassignedavaluewhichisneverused变量XXX已赋值但从未用过。Codehasnoeffect程序中含有没有实际作用的代码。No

7、n-portablepointerconversion不适当的指针转换,可能是在应该使用指针的地方用了一个非0的数值。Possibleuseof‘XXX’beforedefinition表达式中使用了未赋值的变量Redeclarationof‘main’一个程序文件中主函数main不止一个。Suspiciouspointerconversion可疑的指针转换。通常是使用了基本类型不匹配的指针。Unreachablecode程序含有不能执行到的代码。C语言程序调试错误或致命错误Compoundstatementmissing}infunctionmain程序结尾缺少

8、括号}。“

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。