C语言常见错误及解决方案详解
需积分: 50 178 浏览量
更新于2024-09-09
收藏 661KB PDF 举报
C语言常见错误及解决方案32讲
C语言是一种功能强大且灵活的编程语言,但是在实际编程中,程序员经常会遇到一些常见的错误,这些错误可能会导致程序崩溃、数据丢失甚至是安全漏洞。本文总结了C语言编程中32个常见错误及其解决方案,旨在帮助程序员避免这些错误,提高编程效率和代码质量。
**第1讲.把“=”误当作“==”使用**
错误举例:ect.top=rect.bottom) { MessageBox(hwnd,"Invalid rectangle!",NULL,MB_OK|MB_ICONERROR); }
解决方案:因为条件判断误写成了赋值,上面的判断将永远为真,除非rect.bottom为零。比较低级却又难以发现的错误。说它低级是因为它属于再基本不过的语法问题;而它之所以难以发现是因为它不会产生编译错误,唯有在调试过程中跟踪执行才会发现。通常它导致的后果是某一个条件判断失效或者进一步导致死循环。
**第2讲.使用已释放了的指针**
错误举例:while(p) { delete p; p=p->next; }
解决方案:这样是很危险的。正确的方法是:while(p) { q=p->next; delete p; p=q; }。正确的方法是先保存下一个指针,然后再释放当前指针,最后将当前指针设置为下一个指针。
**第3讲.在定义数组时,将定义的“元素个数”误认为是可使的最大下标值**
错误举例:main() { static int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d",a[10]); }
解决方案:C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开始,所以数组元素a[10]是不存在的。在定义数组时,元素个数是指数组的容量,而不是最大下标值。
**第4讲.输入数据时,企图规定精度**
错误举例:scanf("%7.2f",&a);
解决方案:这样做是不合法的,输入数据时不能规定精度。在scanf函数中,%7.2f是用于输出浮点数的格式控制符,而不是输入数据的格式控制符。
**第5讲.输入数据的方式与要求不符**
错误举例:①scanf("%d%d",&a,&b); 输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4
解决方案:C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:3,4。又如:scanf("a=%d,b",&a,&b); 输入时,应输入与格式控制字符串相同的字符。
这些常见错误都是C语言编程中经常遇到的问题,了解这些错误及其解决方案将有助于程序员避免这些错误,提高编程效率和代码质量。
2013-11-16 上传
点击了解资源详情
2014-01-10 上传
2011-12-03 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
csdnabc369
- 粉丝: 0
- 资源: 1
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器