C++ 不确定这些运算符是否以这种方式使用
此代码示例来自:C++ 不确定这些运算符是否以这种方式使用,c++,C++,此代码示例来自: 模板 myType GetMax(myType a、myType b){ 返回(a>b?a:b); } 我感到困惑的是返回的代码的“a>b?a:b”部分。有人能帮我了解这里发生了什么吗?谢谢。这是三元运算符。它计算?前面的表达式,如果为真,则返回:前面的值。否则,将返回:后面的值 它基本上是表达以下if/else语句的简洁方式: if ( a>b) { return a; } else { return b; } 它被称为三元运算符: 你能想到ret
模板
myType GetMax(myType a、myType b){
返回(a>b?a:b);
}
我感到困惑的是返回的代码的“a>b?a:b”部分。有人能帮我了解这里发生了什么吗?谢谢。这是三元运算符。它计算
?
前面的表达式,如果为真,则返回:
前面的值。否则,将返回:
后面的值
它基本上是表达以下if/else语句的简洁方式:
if ( a>b)
{
return a;
}
else
{
return b;
}
它被称为三元运算符: 你能想到
return(a>b)?a:b代码>作为:
if(a>b) {
return a;
} else {
return b;
}
请记住,三元运算符实际上生成一个值,即a或b(这就是它在return
语句中工作的原因)
所以你可以做像这样的事情
myType c=(a>b)?a:b
,大致相当于
myType c;
if(a > b) {
c = a;
} else {
c = b;
}
我理解关于检查三元运算符之前的内容是否为真的部分,但为什么在:@愤怒的蟾蜍,因为如果表达式是真的,你就把返回值放在这里。啊,我明白了。非常感谢!
myType c;
if(a > b) {
c = a;
} else {
c = b;
}