Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

6.3.2 单词

我们必须“向前”看这一行表达式中有没有乘法或者除法运算符。如果有,必须调整这种简单的从左到右的计算顺序。然而,当我们试图这样做时,立刻遇到了很多困难。

1.我们并没有必须要求表达式在一行输入,例如:

目前的代码能够正确地计算其结果。

2.如何在数字之间搜索“*”(或者“/”)操作符,而且该表达式有可能分散在多行?

3.如何记住“*”操作符的位置?

4.如何不按从左到右的顺序计算表达式的值(如1+2*3)?

让我们做一回极端的乐观主义者,首先解决前三个问题,不去担心最后一个问题,我们将在非常晚的时候考虑它。

我们四处寻求帮助,肯定有人知道如何从输入读取包括数字和操作符在内的表达式的方法,而且以一种看起来非常合理的方式进行存储。答案就是“分词”(tokenize):读取输入字符并组合为单词(token),因此如果键入:

程序将产生一个单词列表

单词(token)是表示可以看作一个单元的一个字符序列,例如数字或者运算符,这也是C++编译器处理源代码的方法。实际上,“分词”在某种形式上是文本分析经常采用的方法。以C++表达式为例,可以看出所需的三种单词类型: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252