我们说表达式“评估”值,语句命令计算机“执行”。但对我来说,这似乎是相同的术语。 C 中的执行和求值有什么区别?
最佳答案
几乎在所有情况下都非常接近无关紧要。
如果我们要非常精确,我会说评估产生结果值并且不改变状态,而执行改变状态并且结果值要么不产生要么是偶然的并被忽略。
一般来说,我们计算表达式,执行语句。
因此,例如,如果我们在 C 中有一个 if
语句,我们首先评估条件,然后执行(或不执行)主体。
混淆被放大了,因为在 C 中我们有改变状态的表达式(赋值运算符、递增/递减运算符)和除了表达式之外什么都不是的语句。
所以当你看到
a = b+c;
在 C 中,它是一个被执行的语句,但执行包括计算表达式 a=b+c
,其中结果(对 a
的非常量引用>) 被丢弃,副作用(a
改变它的值)很重要。
关于c - 执行和评估有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636343/