为什么文字被认为是C ++中的表达式?

时间:2014-11-01 18:35:56

标签: c++ variables expression literals

我正在使用编程原理和使用C ++实践来学习C ++编程语言。  我现在在第4章,在本章中,本书介绍了表达的概念,但我根本无法理解:

  

程序中最基本的构建块是表达式。表达式计算来自多个操作数的值。 C ++中最简单的表达式只是一个文字值,如11,'c',“hello”。变量的名称也是表达式。变量表示名称的对象。

为什么文字被视为表达?为什么变量的名称被认为是表达式?

3 个答案:

答案 0 :(得分:4)

表达式 - 在编程语言中,在数学中,在语言学中 - 是在组合上(或归纳地)定义的。因此,表达式通常由子表达式构成,例如x*2+y*4由加法运算符x*2连接的两个子表达式y*4+组成。

但是你需要一个基本案例(最原子和最简单的表达式)。这些是文字(2)和变量(x) - 如果它们中的任何一个不是表达式2*x就不能是表达式(因为二进制乘法的两个操作数{{1}是子表达式)。

请注意,在C和C ++中,分配函数调用是表达式

答案 1 :(得分:2)

可以这样想:表达式是一系列产生值的步骤。因此,4+3是两步表达式,因为您(1)以数字4开头,(2)向其添加3

因此,7可以被视为单步序列,因为只有一个"动作"执行:(1)从数字7开始。

因此,a = 4+3;a = 7;都可以推广到a = <expression>;

答案 2 :(得分:1)

表达式是“指定计算的运算符和操作数序列”(http://en.cppreference.com/w/cpp/language/expressions)。

让我们看一个简单的表达式:3 + 3.当你评估这个表达式时,你会得到结果6.

所以让我们看另一个表达式:3。当你评估这个表达式时,你会得到结果3.

文字被认为是一个表达式,因为文字是一种常量,常量是具有固定值的表达式。

变量也被视为表达式,因为它可以在另一个表达式中用作操作数,也可以用作表达式。

在软件设计中,复合模式可用作表达式的表示。