gpt4 book ai didi

c++ - 是 ? : expression not always evaluated?

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:25 27 4
gpt4 key购买 nike

在 Lisp 中,可以计算任何表达式。 C++ 采用了以下概念:“表达​​式”、“值”、“求值”。

如果您不了解“表达式”、“值”和“求值”之间的关系,请引用C++标准5.1。

我知道 ?: 是一个与 + 表达式相同的表达式。

任何表达式都必须能够被计算并给出一个值。然而 ?: 表达式似乎并不总是这样。

void f1() {}
void f2() {}

void test(bool b)
{
b ? f1() : f2(); // OK. What's the value of this expression?
}

任何表达式都应该有一个值; b ? f1() : f2(); 是一个表达式;它的值(value)是多少?

有什么解释吗?

更新和我自己的回答:

摘自C++标准5.1:

An expression can result in a value and can cause side effects.

最佳答案

表达式 b 的值? f1() : f2()f1()f2() 取决于 b 的值。在您的例子中,两个函数都返回 void,因此表达式的值为 nothing

关于c++ - 是 ? : expression not always evaluated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18822242/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com