C++编程常见错误整理

简介:        最近,我在阅读《C++ Primer》,经常看到里面提到一些错误类型,像“编译错误”、“运行错误”等。于是,我对C++中的错误类型产生了兴趣,查阅了一些资料,特整理如下。

       最近,我在阅读《C++ Primer》,经常看到里面提到一些错误类型,像“编译错误”、“运行错误”等。于是,我对C++中的错误类型产生了兴趣,查阅了一些资料,特整理如下。


       (一) 程序错误分类

        在C++中,程序错误分为三类:语法错误(syntax error)、逻辑错误运行错误

        语法错误指违背了C++语言的规定,主要是语句的结构或拼写中存在的错误。

        逻辑错误是由于程序设计人员设计的算法有错或编写的程序有错,通知给系统的指令与解题的原意不相同,即出现了逻辑上的混乱。

        运行错误是由系统运行环境造成的,即在运行时出现的错误。


       (二) 一些常见的错误现象

       1. 与变量有关的错误

       (1)忘记定义变量;

       (2)变量名命名不当;

       (3)数据类型不一致;

       (4)字符常量与字符串常量使用不当;

       (5)输入输出的数据的类型与所用的格式说明符不一致;

       (6)未注意int型数据的数值范围;

       (7)输入数据的形式与要求不符;

       (8)在使用标识符时,忘记了大写字母与小写字母的区别;

       (9)在定义数组时,将定义的“元素个数”误以为是“可使用的最大下标值”;

      (10)对二维或多维数组的定义和引用的方法不对;

      (11)误以为数组名代表数组中全部元素;


      2. 与操作符有关的错误

     (1)比较运算符与赋值运算符使用上的错误;

     (2)因使用自增与自减运算符不当导致的错误(使用自加(++)和自减(--)运算符时出现的错误);

     (3)误把“=”作为“等于”运算符;

     (4)在输入语句scanf中忘记使用变量的地址符。


     3. 与标点符号有关的错误

     (1)语句后面漏分号;

     (2)在不该加分号的地方加了分号;

     (3)对应该有花括号的复合语句,忘记加花括号;

     (4)括号不配对;

     (5)引用数组元素时误用了圆括号。


     4. 与指针有关的错误

     (1)混淆字符数组与字符指针的区别;

     (2)在引用指针变量之前,没有对它赋予确定的值;

     (3)不同类型的指针混用;

     (4)混淆数组名与指针变量的区别。


     5. 与语句有关的错误

     (1)switch语句的各分支中漏写break语句;

     (2)混淆字符和字符串的表示形式;

     (3)在需要加头文件时没有用#include命令去包含头文件。


     6. 与函数有关的错误

    (1)所调用的函数在调用语句之后才定义,而又在调用前未声明;

    (2)对函数声明与函数定义不匹配;

    (3)误以为形参值的改变会影响实参的值;

    (4)函数的实参和形参类型不一致;

    (5)没有注意函数参数的求值顺序。


     7. 其它错误

    (1)混淆结构体类型与结构体变量的区别,对一个结构体类型赋值;

    (2)使用文件时忘记打开,或打开方式与使用情况不匹配。

 

       总的说来,在编写程序的过程中,我们肯定会遇到错误的,因为“试图一下子就能写出一个完全成功的程序几乎是不可能的”。当我们有了丰富的编程经验之后,面对各种错误便能够轻松解决了!

 

 

 

参考文献

[1]    C++ Primer(中文第三版),中国电力出版社。

[2]    C程序设计(第三版),谭浩强(著),清华大学出版社。

[3]    C++编程常见错误分类与解析[J],孙爱民,漯河职业技术学院学报(综合版),2006年4月。
目录
相关文章
|
2月前
|
存储 C++ UED
【实战指南】4步实现C++插件化编程,轻松实现功能定制与扩展
本文介绍了如何通过四步实现C++插件化编程,实现功能定制与扩展。主要内容包括引言、概述、需求分析、设计方案、详细设计、验证和总结。通过动态加载功能模块,实现软件的高度灵活性和可扩展性,支持快速定制和市场变化响应。具体步骤涉及配置文件构建、模块编译、动态库入口实现和主程序加载。验证部分展示了模块加载成功的日志和配置信息。总结中强调了插件化编程的优势及其在多个方面的应用。
317 65
|
1月前
|
消息中间件 存储 安全
|
2月前
|
安全 程序员 编译器
【实战经验】17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
213 9
|
2月前
|
存储 搜索推荐 C++
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器
55 2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
|
2月前
|
安全 程序员 编译器
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
88 11
|
2月前
|
存储 C++ 容器
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器1
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器
55 5
|
2月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
48 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
2月前
|
算法 编译器 C++
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
84 2
|
2月前
|
存储 编译器 C++
【C++篇】引领C++模板初体验:泛型编程的力量与妙用
【C++篇】引领C++模板初体验:泛型编程的力量与妙用
42 2
|
2月前
|
自然语言处理 编译器 Linux
【C++】巧用缺省参数与函数重载:提升编程效率的秘密武器
【C++】巧用缺省参数与函数重载:提升编程效率的秘密武器