"DHT11?0:-40;" 这种语法意味着什么,它叫什么?

C3T*_*heo 2 c++ arduino

return model == DHT11 ? 0 : -40;

我相信这意味着"返回模型,如果介于0和-40之间",但我想要一个明确的答案.

And*_*ner 6

它是三元运算符,相当于:

if (model == DHT11)
    return 0;
else
    return -40;
Run Code Online (Sandbox Code Playgroud)

因此它与检查范围无关.

三元运算符产生一个值,即您也可以在赋值中使用它,如:

retval = model == DHT11 ? 0 : 40;
return retval;
Run Code Online (Sandbox Code Playgroud)