2015-11-19 125 views

回答

6

ternary operator,相当于:

if (model == DHT11) 
    return 0; 
else 
    return -40; 

所以它无关的范围内进行检查。

三元运算符产生的值,也就是说,您也可以在分配中使用,如:

retval = model == DHT11 ? 0 : 40; 
return retval; 
0

这个操作符(E1 E2:E3)被称为三元运算符,其中E是表达式。

这意味着: “如果E1为true,则返回E2,否则,返回E3”

这里有一个link到cppreference地名释义多一点。

0

如前所述,它被称为三元运算符。

三元运算符检查是否有错,如果是,则产生:之前的值。如果它是假的,它会产生:之后的值。

在这种情况下,它会检查model == DHT11的计算结果是否为真,如果是,则返回0。如果model == DHT11的计算结果为false,则为-40。然后将三元值的值赋予return,退出该函数并返回0或-40。

其他例如:

std::string hi = "hi"; 
std::cout << (hi == "hi") ? "string hi contains \"hi\"." : "string hi does not contain \"hi\"." << "\n"; 

将打印:

string hi contains "hi".

常规语法:

bool ? value1 : value2

三元运算符是一样的if-else语句,压缩到一条线。