当编写程序时,几乎是不可避免的,你会犯错误。在这一节中,我们将讨论所做的不同的错误,以及它们是如何处理的。
错误分为两大类:语法和语义错误。
语法错误
语法错误发生时,你写了一个声明针对C++语言的语法无效。例如:
如果5不等于6,则写“不等于”;
语法错误几乎总是由编译器捕获,通常很容易修复。因此,我们通常不担心他们太多。
语义错误
语义错误发生时,语句在语法上是有效的,但不做程序员想要的。例如:
程序员可能已经打算这一声明,以打印1 2 0,但它实际上是打印1 2 3 0。
语义错误不是由编译器捕获的,它可以有任意数量的影响:它们可能不显示在所有,导致程序产生错误的输出,导致不稳定的行为,损坏的数据,或导致程序崩溃。
它在很大程度上是我们所关心的语义错误。
语义错误可以发生在许多方面。最常见的语义错误之一是一个逻辑错误。当程序员错误地对一个语句的逻辑进行编码时,出现了一个逻辑错误。上面的语句示例是一个逻辑错误。这里是另一个例子:
错误分为两大类:语法和语义错误。
语法错误
语法错误发生时,你写了一个声明针对C++语言的语法无效。例如:
如果5不等于6,则写“不等于”;
虽然这种说法是可以理解的人类,它是无效的根据C++的语法。正确的C++语句会:
1
2
if (5 != 6)
std::cout << "not equal";语法错误几乎总是由编译器捕获,通常很容易修复。因此,我们通常不担心他们太多。
语义错误
语义错误发生时,语句在语法上是有效的,但不做程序员想要的。例如:
2
for (int count=0; count <= 3; ++count)
std::cout << count << " ";程序员可能已经打算这一声明,以打印1 2 0,但它实际上是打印1 2 3 0。
语义错误不是由编译器捕获的,它可以有任意数量的影响:它们可能不显示在所有,导致程序产生错误的输出,导致不稳定的行为,损坏的数据,或导致程序崩溃。
它在很大程度上是我们所关心的语义错误。
语义错误可以发生在许多方面。最常见的语义错误之一是一个逻辑错误。当程序员错误地对一个语句的逻辑进行编码时,出现了一个逻辑错误。上面的语句示例是一个逻辑错误。这里是另一个例子:
本文探讨了程序开发中常见的两类错误——语法错误与语义错误的区别及其影响。语法错误指不符合编程语言规定的错误,这类错误通常容易被编译器捕捉并修复。而语义错误则更为隐蔽,即使代码语法正确,也可能因为逻辑上的失误导致程序行为不符合预期,此类错误可能导致程序产生错误输出、行为不稳定或数据损坏等问题。

被折叠的 条评论
为什么被折叠?



