c语言常见错误及解决方法

c语言常见错误及解决方法

ID:8977396

大小:34.50 KB

页数:3页

时间:2018-04-13

c语言常见错误及解决方法_第1页
c语言常见错误及解决方法_第2页
c语言常见错误及解决方法_第3页
资源描述:

《c语言常见错误及解决方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言常见错误及解决方法既然我前边总结了那么多关于C语言常见错误那么现在给大家分享一下C语言常见错误及解决方法,关于C语言常见错误及解决方法是针对大家的通病说提出的解决方法,大家可以参考一下。C语言常见错误及解决方法一、基础知识和数据类型、表达式、掌握关键词的具体用法及适用范围对象。1、拼写错误,尤其是include,main,void,float等词。C语言的32个关键字与基本含义如下:double:声明双精度变量或函数int:声明整型变量或函数char:声明字符型变量或函数float:声明浮点型变量或函数void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)aut

2、o:声明自动变量一般不使用struct:声明结构体变量或函数break:跳出当前循环else:条件语句否定分支(与if连用)long:声明长整型变量或函数switch:用于开关语句case:开关语句分支enum:声明枚举类型register:声明积存器变量typedef:用以给数据类型取别名(当然还有其他作用)extern:声明变量是在其他文件正声明(也可以看做是引用变量)return:子程序返回语句(可以带参数,也看不带参数)union:声明联合数据类型const:声明只读变量short:声明短整型变量或函数unsigned:声明无符号类型变量或函数continue:结束当前循环,开

3、始下一轮循环for:一种循环语句(可意会不可言传)signed:生命有符号类型变量或函数default:开关语句中的“其他”分支goto:无条件跳转语句sizeof:计算数据类型长度volatile:说明变量在程序执行中可被隐含地改变do:循环语句的循环体while:循环语句的循环条件static:声明静态变量if:条件语句2、{},[],(),‘’,“”不配对。解决这个问题最好的方法就是每当写这些符号的时候就先写成一对,然后再在中间加内容。3、忘记在语句的末尾加分号,或在预处理命令后多加分号。记住:每一个语句的后边都要加分号,而预处理命令并不是语句,所以不加分号,他们必须每行一条,不

4、能把多个命令写在一行。4、混淆/和;注释对应的符号是,而转义字符是以开头,除号是/。5、printf()和scanf()的参数设置有误,主要表现在以下几方面:l类型不匹配的问题。(例如:有floata=3.5,但输出的时候printf(“a=%d”,a);则屏幕上会显示出a=0.00000或者提示其它运行错误)。基本原则是:float对应%f,int对应%d,char对应%c。l个数不匹配。无论是哪个函数,都可以有n个参数,第一个永远是“”括起来的内容,表示输出格式。剩下的n-1个是输出的变量或者输入的变量的地址。需要注意的是,如果后边有n-1个参数,那么前边一定对应n-1个%f一

5、类的格式说明符。lscanf()中变量前忘了加&。记住:scanf()中变量前要有&(但后边学到的字符数组名和指针前不用加)6、定义标识符的时候经常出现使用非法字符的情况,例如:标识符中不能用空格,也就是说不能有这样的定义:intradiumofcircle;一般情况下可用下划线将三个单词连接在一起。7、在使用变量前未定义,或未初始化。例如:若下边的sum未定义,则在编译时会提示相应的错误信息,而若未初始化为0,则求和的结果一定是错误的。 voidmain(){intI,a[10],sum=0;for(I=0;I<10;I++)sum+=a[I];printf(“%d”,sum);}8

6、、符合常量定义错误。例如:#definePI=3.14159,这里的=应该换成空格。9、计算错误。主要注意:++,――和其它运算符一起运算时,除根据优先级进行计算时,还要考虑先后位置的特殊含义;数据类型不一致时发生的自动转换也会导致计算的误差;还要注意求模结果的符号与被除数相同;某些特殊情况下 使用懒惰求值法。10、不能除以0,要做合法性检查;11、类型溢出。记住每种数据类型的取值范围,确保数据在所定义类型范围之内;12、数学表达式的格式有误。常见的有:(1)数学与C语言运算表达式的混淆(例如:=表示赋值,而==才表示我们数学中的相等关系)。(2)、忽略了运算的优先级。解决这个问题的最

7、好方法就是写数学表达式时不要从左到右,而是按优先级的顺序写,写完优先级高的一个表达式后加上()再写下一级的表达式,例如:计算梯形的面积时,要s=((a+b)*h)/2,不要1/2*a+b*h.(3)忽略了计算和赋值时的自动转换。例如:floathalf=1/2;这样,因为=右边是整数相除的结果为整数0,不会得到0.5存入half,进而会影响下边的计算结果。要想不在这儿绊跟头,当计算不同类型的数据时,一定注意会不会出现引起错误的自动转换,建议最好

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

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

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