我不明白用c ++进行评估意味着什么。我有这句话:“它的语法是:

条件? result1:result2

如果条件为true,则整个表达式的计算结果为result1,否则为result2。继续,检查还是什么?
谢谢!非常感激

最佳答案

每个表达式都有一个值。该值是通过评估表达式获得的。在某种程度上被迫扭曲英语的情况下,我们有时会说“该表达式的计算结果是[某物]”。

表达式的求值通常在运行时进行,它是程序的运行时属性。 (例外是常量表达式。)

评估规则是递归定义的:


文字的计算结果为其表示的值,例如5的值为“ 5”。
表达式a + b计算表达式ab的值的数学和。 (因此,要评估表达式a + b,首先必须评估表达式ab。)
表达式a = b求值为a的新值(并且有一个副作用,即将由a指定的左值更改为b的值)。
... 等等 ...
表达式c ? a : b取决于a的值,将bc转换为ab类型的常见类型。


请注意,并非所有表达式都被求值。例如,在表达式sizeof(+a)中,子表达式+a和子表达式a都不被求值。同样,在条件表达式中不评估未使用的表达式,在逻辑表达式中不评估短路的死表达式。

“运行时未定义的行为”通常是表达式求值的结果。

07-28 02:16
查看更多