"DHT11 ? 0 : -40;" 这种语法是什么意思,叫什么?
"DHT11 ? 0 : -40;" What does this syntax mean and what is it called?
return model == DHT11 ? 0 : -40;
我相信这意味着"如果在0到-40之间,则返回模型",但我想要一个明确的答案。
它是三元运算符,等价于:
if (model == DHT11)
return 0;
else
return -40;
所以它与范围检查无关。
三元运算符产生一个值,也就是说,你也可以在赋值中使用它,比如:
retval = model == DHT11 ? 0 : 40;
return retval;
这个运算符(E1?E2:E3)被称为三元运算符,其中E是表达式。
意思是:"如果E1为真,则返回E2,否则返回E3"
这里有一个链接到cppreference,解释了更多内容。
如前所述,它被称为三元运算符。
三元运算符检查某个值是否为真,如果为真,则生成:
之前的值。如果为false,则生成:
之后的值。
在这种情况下,它检查model == DHT11
的计算结果是否为true,如果为true,则给出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语句一样,压缩为一行。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思