C++ 语言有哪些常见编程错误? 您所在的位置:网站首页 origin输入负数 C++ 语言有哪些常见编程错误?

C++ 语言有哪些常见编程错误?

2023-03-28 20:05| 来源: 网络整理| 查看: 265

这篇文章更多的是新手向的,如有错误欢迎指出

最近更新:2023/3/4

写在前面:

1.在VScode中,如果你编译失败,系统会运行你上一次编译成功(但可能是连接失败)的文件,所以如果你发现自己明明更改了这个错误,但是运行程序后仍然和上次的结果相同,这就要看看更改后的程序是否出现编译错误了。

2.造成错误的原因往往是复杂的,一些错误笔者只能给出常见的可能的原因,这就是为什么我说这篇文章是“新手向”的。如果读者在查阅这篇文章后仍然感到疑惑,可以评论/私信,或者自行百度。

3.造成错误的原因多样,错误提示也是多样的。这里也不可能罗列所有错误类型,因此错误提示中可变的部分笔者用xxx表示,而读者在搜索时也不要将整个错误提示填在搜索框内,而是截取其中的一小部分固定的部分进行搜索。

4.不同的IDE(集成开发环境,即你写代码的那个软件)对相同的错误类型的错误提示语句不尽相同,笔者这里是根据VScode(部分会附上Dev)的错误来写的,因此如果读者发现自己的IDE报错和这篇文章中提到的不一样,还请见谅

一、Arithmetic exception

算术错误,检查是否出现分母为0、负数根式的情况

比如:

printf("%d",1/0);二、Segmentation fault

段错误,检查是否有以下问题:

1. 调用没有对象的野指针,建议在定义指针的时候new或者malloc一块空间给它(不要直接给指针赋0)

比如:

int* p; //p是没有对象的野指针 *p=3; //对野指针赋值

建议改成(malloc需要加头文件,C++中直接用new),:

int* p=(int*)malloc(sizeof(int)); //malloc函数返回类型是void*,需要强制类型转化一下 int* p=new int;2. 指针并不是野指针,但是它指向NULL或者指向受系统保护的区域

比如以下两种情况:

int* p=0; int* p=NULL;

建议和1一样,分配一块动态内存

3. 下标越界,访问某个数组超出其定义下标的值

比如:

int array[3]={0}; //只定义到3 cout>、[]等

操作数是这些运算符所需要操作的对象,比如+运算需要有左右两个数,而++运算是对一个数操作的

出现这个错误一般是操作数的类型与操作符所要求的不匹配,比如(string类型需要头文件):

1.使用系统的类时出错,或者尝试对不正确的类型进行运算符操作

比如:

string a="abc"; cout>3; //正确的应为cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有