C语言常见6种错误!

1、忽略大小写字母的区别

编译代码时把x和X认为是两个不同的变量名,而显示出错信息。C语言认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示。

2、将字符常量与字符串常量混淆

char a;
a=”c”;

例子中混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。

3、忘记加分号

分号是C语句中不可缺少的一部分,语句末尾必须有分号。
x=1
y=2
编译时,编译程序在“x=1”后面没发现分号,就把下一行“y=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。

4、scanf函数输入时忘记加地址运算符“&”

int a,b;
scanf(“%d%d”,a,b);
这是不合法的。scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。

5、输入输出的数据类型与所定义的类型不一样

例如:x已定义为整型,y定义为浮点型
x=3;y=4.5;
printf(“%f%d\n”,x,y);
编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。

6.switch语句中漏写break语句

例如:根据考试成绩的等级打印出百分制数段。
switch(grade)
{
case ‘A’:printf(“85~100\n”);
case ‘B’:printf(“70~84\n”);
case ‘C’:printf(“60~69\n”);
case ‘D’:printf(“<60\n”);
default:printf(“error\n”);
}
由于漏写了break语句,case只起标号的作用,而不起判断作用。因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。

正文完