c语言中常见错误(转贴) c语言的最大特点是:功能强.使用方便灵活.c编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学c语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,本人通过对c的学习,积累了一些c编程时常犯的错误,写给各位学员以供参考. 【程序编程相关:“企业家与程序员 - 无声的火花”。】
发表日期:2004年3月18日 作者:何军 已经有2052位读者读过此文 【推荐阅读:Sun发布更精简开发工具Java Stu】
2.忽略了变量的类型,进行了不合法的运算.main(){float a,b;printf("%d",a%b);}%是求余运算,得到a/b的整余数.整型变量a与b可以进行求余运算,而实型变量则不允许进行“求余”运算. 【扩展信息:.Net的Outofmemory异常及大】
1.书写标识符时,忽略了大小写字母的区别.main(){int a=5;printf("%d",a);}编译程序把a与a认为是两个不同的变量名,而显示出错信息.c认为大写字母与小写字母是两个不同的字符.习惯上,符号常量名用大写,变量名用小写表示,以增加可读性.
3.将字符常量与字符串常量混淆.char c;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列.c规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a´与‘\´,而把它赋给一个字符变量是不行的.
4.忽略了“=”与“==”的区别.在许多高级语言中,用“=”符号作为关系运算符“等于”.如在basic程序中可以写if (a=3) then …但c语言中,“=”是赋值运算符,“==”是关系运算符.如:if (a==3) a=b;前者是进行比较,a是否与3相等,后者表示如果a与3相等,把b值赋给a.由于习惯问题,初学者往往会犯这样的错误.
5.忘记加分号.... 下一页