c - 执行和评估有什么区别?

标签 c execution evaluation

我们说表达式“评估”值,语句命令计算机“执行”。但对我来说,这似乎是相同的术语。 C 中的执行和求值有什么区别?

最佳答案

几乎在所有情况下都非常接近无关紧要。

如果我们要非常精确,我会说评估产生结果值并且不改变状态,而执行改变状态并且结果值要么不产生要么是偶然的并被忽略。

一般来说,我们计算表达式,执行语句。

因此,例如,如果我们在 C 中有一个 if 语句,我们首先评估条件,然后执行(或不执行)主体。

混淆被放大了,因为在 C 中我们有改变状态的表达式(赋值运算符、递增/递减运算符)和除了表达式之外什么都不是的语句。

所以当你看到

a = b+c;

在 C 中,它是一个被执行的语句,但执行包括计算表达式 a=b+c,其中结果(对 a 的非常量引用>) 被丢弃,副作用(a 改变它的值)很重要。

关于c - 执行和评估有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636343/

相关文章:

c - 什么是评价?

c - 在 C 中输出的开头打印一个额外的空行

c - 应使用哪种数据类型在数组中存储大至 10^9 的整数?

从cmd运行powershell来启动程序并退出。该程序将保持运行,但 powershell 应该退出

java - "unit of execution"是什么意思?

c++ -++x %= 10 在 C++ 中是否明确定义?

java - 定义的参数评估顺序导致次优代码?

c - 多维字符数组在函数内打印,但在传递给另一个函数时不打印

c - 如何使用pthread_mutex_trylock?

c - 如何使用命令提示符运行 .exe 文件?