它是无效的根据C++的语法
2016-07-19 16:17
316 查看
当编写程序时,几乎是不可避免的,你会犯错误。在这一节中,我们将讨论所做的不同的错误,以及它们是如何处理的。
错误分为两大类:语法和语义错误。
语法错误
语法错误发生时,你写了一个声明针对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。
语义错误不是由编译器捕获的,它可以有任意数量的影响:它们可能不显示在所有,导致程序产生错误的输出,导致不稳定的行为,损坏的数据,或导致程序崩溃。
它在很大程度上是我们所关心的语义错误。
语义错误可以发生在许多方面。最常见的语义错误之一是一个逻辑错误。当程序员错误地对一个语句的逻辑进行编码时,出现了一个逻辑错误。上面的语句示例是一个逻辑错误。这里是另一个例子:
错误分为两大类:语法和语义错误。
语法错误
语法错误发生时,你写了一个声明针对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。
语义错误不是由编译器捕获的,它可以有任意数量的影响:它们可能不显示在所有,导致程序产生错误的输出,导致不稳定的行为,损坏的数据,或导致程序崩溃。
它在很大程度上是我们所关心的语义错误。
语义错误可以发生在许多方面。最常见的语义错误之一是一个逻辑错误。当程序员错误地对一个语句的逻辑进行编码时,出现了一个逻辑错误。上面的语句示例是一个逻辑错误。这里是另一个例子:
相关文章推荐
- C++ - PAT - L2-013. 红色警报(天梯赛决赛题目)
- 嵌入式C语言实战开发详解(三)
- 谓词,lambda表达式和bind
- C++ string祥解
- C语言中%d,%o,%f,%e,%x的意义
- windows via c/C++设备IO之接收I/O请求完成通知
- 343. Integer Break
- C++右值引用
- 用C语言实现发红包的软件算法
- c语言实现读取txt文件内容到结构体数组中
- 1077. Kuchiguse (20)
- 关于c 和 c++ 中定义全局常量的异同
- 计数排序
- 分析C语言一个简单程序
- windowsViaC/C++设备IO之异步设备IO请求
- C++ 语法 :#pragma once 与 #ifndef ...#define ...#endif
- C++异常处理机制详解
- windowsViaC/C++设备IO之同步的设备I/O
- 设计模式之观察者模式(C++)
- QT学习之路————C语言操作sqlite数据库