首页 > 解决方案 > 什么是评价?

问题描述

我在这个术语上绊倒了很长一段时间(人、数学、编程、makefile 等)。我是否正确理解了这个术语?评估是对某些表达式结果的计算,例如:

a + b - 表达式

为了评估它(通过数字获得一些结果),我们像这样给变量值

a = 1, b = 1

由此判断,我们得到一个结果“2”(这意味着我们用输入值将表达式评估为“2”

a = 1, b = 1)

标签: cmathevaluation

解决方案


C 2018 5.1.2.3 2 说“<em>表达式的评估通常包括值计算和副作用的启动。” 所以,是的,在很大程度上,评估是从某个表达式计算值。在 C 中,求值还包括副作用,例如由 引起的增量x++,它影响x但不影响它所在的​​表达式的值。

5.1.2.3 2 继续说“左值表达式的值计算包括确定指定对象的身份。” 这更多是关于描述 C 语言的语义,而不是关于执行计算,所以我不会在这里进一步讨论。

6.5 1 告诉我们“表达式是一系列运算符和操作数,用于指定值的计算,或指定对象或函数,或产生副作用,或执行它们的组合。” 因此,对于表达式的值方面,表达式指定一个计算,而求值执行该计算。表达式还可以指定副作用,并且评估也会执行这些。


推荐阅读