Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 不确定这些运算符是否以这种方式使用_C++ - Fatal编程技术网

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;
}