易错点运算,而实型变量则不允许进行求余运算. C语言中易犯的错误
经常会出一些语言的人来说,对初学C .看连自己都不知道错在哪里的错误********************************着有错的程序,不知该如何改起,一些********************************,写给各位学员以C编程时常犯的错误************************ .
供参考3.********************************将字符常量与字符串常量混淆. ********************************char c; ************************ c=a;
,忽略了大小写字母书写标识符时1. 在这里就混淆了字符常量与字符串的区别.
常量, 字符常量是由一对单 main()
引号括起来的单个字符,字符串常量{
是一对双引号括起来的字符序 int a=5; printf(%d,A);
列.C规定以\\\\作字符串结束标志} ,它是由系统自动加上的,所
和A认为是两个不同 编译程序把a以字符串慜实而显示出错信息的变量名,. 际上包含两个字符:'a'和'\\', 而把它赋给一
C认为大写字母和小写字母是两个不个字符变量是不行的符号常量 . ,.同的字符习惯上********************************
********************************变量名用小写表示,,以增加名用大写************************ . 可读性 4.忽略了?与?尽 的区别. ******************************** 在许多高级语言中,用?********************************符号作为关系运算符************************ 等于.
进行了不合法忽略了变量的类型2.,如在BASIC程序中可以写. 的运算
if (a=3) then main() … {
但C语言中尬尽 float a,b;
是赋值运算符尬?是关系运算符 printf(%d,a%b); .如: }
if (a==3) a=b;
的整余数a/b得到,是求余运算 %整.后 可以进行求余b和a型变量,相等3是否和,a前者是进行比较
t=z/100;
相等,把者表示如果a和3 printf(%f,t); }; ,初学者往往b值赋给a.由于习惯问题 .
会犯这样的错误 ********************************复合语句的花括号后不应再加分号,否则将会画蛇添足********************************. ************************ 又如忘记加分号. : 5. if (a%3==0); 分号是C语句中不可缺少的一部分,I++; 语句末尾必须有分号.
本是如果a=1 3整除a,则I加1.但由于if (a%3==0)b=2 后多加了分号
,则if语句到此结束,程序将执行, 编译时编译程序在慜?后面没发I++语句,不论3是否整除a,I都现分号,就把下一行
将自动加企这就也作为上一行语句的一部分,1. , 会出现语法错误.改错时 再如 :
有时在被指出有错的一行中未发现错for (I=0;I<5;I++); ,误就需要看一下上一行是否{scanf(%d,&x); printf(%d,x);} 漏掉了分号.
本意是先后输入5个数{
,每输入一个数后再将它输出.由于for z=x+y; t=z/100;
()后多加了一个分号 printf(%f,t); ,使循环体变为空语句,} 此时只能输入一个数
并输出它对于复合语句来说 ,. 最后一个语句 中最后的分号不能忽略不写 ********************************
****************************************************************************************
********************************7.输入变量时忘记加地址运算符************************ &. . 多加分号 6.int a,b;
对于一个复合语句 : 如,scanf(%d%d,a,b); {
: z=x+y;
函数的作用是.Scanf这是不合法的