在C++中,表达式和文字之间有什么区别



我的书将表达式定义为"具有值的编程语句",将文字定义为"直接写入程序源代码的一段数据",但我仍然难以区分两者。例如,3+3 是文字 AND 表达式,还是只是表达式?为什么?

int number = 2+2;

这整个语句是一个表达式,还是正确的值?为什么?整个语句的值为 4,那么整个语句肯定是一个表达式吗?

在我看来,表达式通常涉及运算符,而文字涉及单个数据,如 4、"Hello"、"A" 等。我也明白文字可以是一个表达式,因为一元运算符,如 - 或 +。我这样想对吗?

表达式是指定计算的运算符和操作数序列。表达式可以生成值,并可能导致副作用。

文本是以下之一:

  • 整数文本
  • 字符文字
  • 浮点文字
  • 字符串文本
  • 布尔文字
  • 指针文本

我不会尝试给出每个的正式定义,但每个基本上只是一个值。

不过,还有一种类型的文字有些特别:

  • 用户定义的文本

尽管用户定义的文本是文本,但文本的值是根据计算表达式的结果定义的。

引用:

表达式: [表达式]
文字: [词典文字]

(对于那些不熟悉它的人,方括号中的标签是用于指定C++标准中的部分的符号)。

例如,

文字类似于数字 7。当转换为汇编代码时,文字 7 在代码中仍然非常明显:

MOV   R1,  7  ; move the number 7 as a value into register R1

表达式是需要计算的东西。通常,您会发现类似于C=A+B;的内容,其中A+B是一个表达式。

表达式是运算符及其操作数的序列,即 指定计算。表达评估可能会产生结果 (例如,2+2 的评估产生结果 4)并可能产生 副作用(例如 std::p rintf("%d",4) 的评估打印 标准输出上的字符"4")。

http://en.cppreference.com/w/cpp/language/expressionshttp://en.cppreference.com/w/cpp/language/expressions#Literals

最新更新