在编写C语言代码的过程中,我们常常会遇到报错(error)和警告(warning),当程序在预编译的过程中,如果碰到了错误,那么程序一定会跑不过去,遇到警告的时候,程序可以跑过去,不过有可能会出现未知的错误结果,当然,这都不是我们想要的结果,而作为一个合格的程序员,这些在编代码阶段就出现的错误,我们应该极力去避免,因为真正出现错误,应该是在调试阶段,那下面我就把那些常见的很坑人的错误总结一下,供大佬们参考咯。
1.printf 和scanf 这两个函数,是最常见的函数,也是最容易出错的函数。比如说
printf("%lf",n );和
printf("%1f",n) 这两个输出语句,一个是lf 一个是1f,如果不细看的话,很容易出现错误,尤其是字小的时候
2.scanf 函数中要注意后面应该是(&n)而不是直接一个(n),这个也应该很注意
3.scanf函数中不要随便给输出的位置打空格,这样很可能会导致输出结果不正确
4.for 循环的嵌套,每一对{} 都应该对应,不然的话,程序会报错,‘{’不匹配,最好的就是在打出for之后,立马就打出一对{},这样避免自己忘记
5.数据的输出,一个%d对应一个整型数字,所以输出几个整数就应该有几个%d,数据的个数不应该超出范围,不然会出现数据丢失
6.头文件的引用千万不能忘,这点很重要,很多时候,我们代码敲得没有问题,但是就是没有引用头文件,所以导致
6.语句和表达式有一个很明显的区别就是,每个语句的后面都用;结尾,但是表达式不用
7.中文字符的混用,尤其是一些容易混淆的符号,比如()0或者o,这些也不太容易区分,应该牢记
8.遇到类型强制转换的情况,应该先清除是否符合数据精度,不然很容易丢失有效位数,比如float类型转换为int类型,不会出错,但是精度会降低。
9.C语言在对数组的定义或引用数组元素时必须用方括号
10.混淆字符数组和字符指针的区别
例如:
int main()
{ char str[4];
str="Computer and C";
printf("%s\n",str);
}
编译出错。str是数组名,代表数组首地址。在编译时对str数组分配了一段内存单元,因此在程序运行期间str是一个常量,不能再被赋值。
11.在引用指针变量之前没有对它赋予确定的值。
12.switch语句的各分支中漏写break语句,这个不会报错,但是程序会出现不可预知的错误,应该仔细检查
13.使用自加(++)和自减(--)运算符时,应该了解是先自增或者自减再引用还是先引用再自增或者自减、
14.如果函数返回值类型为void,则在最后加上return 0;,如果是int类型,则相应的return一个int类型的返回值