它是无效的根据C++的语法

本文探讨了程序开发中常见的两类错误——语法错误与语义错误的区别及其影响。语法错误指不符合编程语言规定的错误,这类错误通常容易被编译器捕捉并修复。而语义错误则更为隐蔽,即使代码语法正确,也可能因为逻辑上的失误导致程序行为不符合预期,此类错误可能导致程序产生错误输出、行为不稳定或数据损坏等问题。
当编写程序时,几乎是不可避免的,你会犯错误。在这一节中,我们将讨论所做的不同的错误,以及它们是如何处理的。
错误分为两大类:语法和语义错误。
语法错误
语法错误发生时,你写了一个声明针对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。
语义错误不是由编译器捕获的,它可以有任意数量的影响:它们可能不显示在所有,导致程序产生错误的输出,导致不稳定的行为,损坏的数据,或导致程序崩溃。
它在很大程度上是我们所关心的语义错误。
语义错误可以发生在许多方面。最常见的语义错误之一是一个逻辑错误。当程序员错误地对一个语句的逻辑进行编码时,出现了一个逻辑错误。上面的语句示例是一个逻辑错误。这里是另一个例子:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值