C语言新手常犯的错误
初学C语言,需要规避以下雷区。
1. C语言是区分大小写的,新手容易忽略大小写的区别。 2. 容易忽略除号的特殊性,例如:
13/5是两个整数在运算,结果还是整数,所以值为2; 13.0/5中包含小数,结果是小数,所以值为2.6
3. C语言中一个等号是赋值,两个等号才是等于,例:
if(a==3) //„如果a等于3,那么 „
4. 容易忘记语句结束,每一个语句都应该以;结束。例:
第2行代码:
int a=3
第3行代码: printf(“hello”);
此时程序会显示第3行出错,事实上第3行没错,错的是第2行,没有分号就没有结束,帮程序会把第2、3行看成一句。
5. 容易把printf(“a=%d”,a);中的双引号放到右侧圆括号的前面,如:
printf(“a=%d,a”);
//错误
6. 容易混淆数据类型,如int a=5; printf(“a=%f”,a);显示不了5 7. 写复合语句时花括号左右不对称,往往是缺少右边花括号——建议写括号要
一对对写。
8. 容易忽略scanf();中规定的输入格式,输入时没有依照双引号当中格式输
入。如:
代码:
scanf(\"%d,%d\
实际输入时却是: 34 56
9. switch中的case执行语句后面忘记写break;——导致条件成立之后的case
语句全部被执行,逻辑错误。
10. 在if()、for()、while()后面多写一个分号;——导致条件/循环语句无效
甚至引致程序语法报错。
11. 把for(;;)当中的分号写成逗号——语法错误。 12. 定义数组时使用了变量限定数组的长度——语法错误。
13. 忽略数组元素下标从0开始——长度为n的数组它的最后一个元素下标为
n-1。
14. 定义了结构体/共同体后,在创建变量时忘记写数据类型名,如
//定义
struct student{ }
struct student s01; struct s02;
//创建变量,正确
char name[10]; char sex[4]; int aeg;
//创建变量,错误