我不明白用c ++进行评估意味着什么。我有这句话:“它的语法是:
条件? result1:result2
如果条件为true,则整个表达式的计算结果为result1,否则为result2。继续,检查还是什么?
谢谢!非常感激
最佳答案
每个表达式都有一个值。该值是通过评估表达式获得的。在某种程度上被迫扭曲英语的情况下,我们有时会说“该表达式的计算结果是[某物]”。
表达式的求值通常在运行时进行,它是程序的运行时属性。 (例外是常量表达式。)
评估规则是递归定义的:
文字的计算结果为其表示的值,例如5
的值为“ 5”。
表达式a + b
计算表达式a
和b
的值的数学和。 (因此,要评估表达式a + b
,首先必须评估表达式a
和b
。)
表达式a = b
求值为a
的新值(并且有一个副作用,即将由a
指定的左值更改为b
的值)。
... 等等 ...
表达式c ? a : b
取决于a
的值,将b
或c
转换为a
和b
类型的常见类型。
请注意,并非所有表达式都被求值。例如,在表达式sizeof(+a)
中,子表达式+a
和子表达式a
都不被求值。同样,在条件表达式中不评估未使用的表达式,在逻辑表达式中不评估短路的死表达式。
“运行时未定义的行为”通常是表达式求值的结果。