C++ 理解初始化

C++ Understanding the Initialization

我一直在研究一段代码。 有人可以解释这行代码。这是在做什么?

dt = (dt < temp ? dt : temp)

正在寻找回复。

嘿,这个语法叫做三元运算符

这是你的情况

(dt<temp)

如果您的条件成立,那么这将 运行。

? dt

如果条件不符合要求,则“:”后的语句将运行。

: temp

示例:

int time = 20;
String result = (time < 18) ? "Good day." : "Good evening.";
printf(result);

如果时间小于 18 则打印 Good day 如果不小于 18 则打印 Good evening。

您可以从这里了解更多信息:https://www.freecodecamp.org/news/c-ternary-operator/

这是使用 ternary operator 实现手动 min() 操作。代码大致等同于:

if (dt < temp)
    dt = dt
else
    dt = temp;

如果dt < temp为真,则将dt设置为自身的值,否则将dt设置为temp的值,如果temp <= dt ] 是真的。

IOW,相当于dt = min(dt, temp);