int qempty()
{
    return (f == r ? 1 : 0);
}

在上面的代码段,这是什么 “的” 呢?我们能与取代它呢?

有帮助吗?

解决方案

此通常被称为条件运算 和像这样使用时:

condition ? result_if_true : result_if_false

...如果condition计算结果为true,该表达式的result_if_true,否则它取值为result_if_false

语法糖和在这种情况下,它可以与

int qempty()
{ 
  if(f == r)
  {
      return 1;
  } 
  else 
  {
      return 0;
  }
}

注意:有些人把?:为“三元运算符”,因为它是唯一的三元运算符(即运营商带有三个参数)的语言他们正在使用。

其他提示

这是一个三元运算符,它基本上如果内嵌语句

x ? y : z

就像

if(x) y else z

除,而不是语句你有表达式;所以你可以在一个更复杂的语句中使用它。

这是用于写入简洁代码是有用的,但是可以被过度使用来创建难以维持的代码。

您可以只把它改写为:

int qempty(){ return(f==r);}

作为其他的答案说哪做同样的事情。

这就是所谓的条件运算

可以将其替换为:

int qempty(){ 
    if (f == r) return 1;
    else return 0;
}

这是条件运算符。

一个? B:C

这是一个为快捷IF / THEN / ELSE

意味着:如果为真,返回b,否则返回℃。在这种情况下,如果f == R,返回1,否则返回0。

刚一说明,如果你看到这一点:

a = x ? : y;

这是一个GNU扩展标准(见 HTTPS://gcc.gnu .ORG / onlinedocs / GCC / Conditionals.html#条件句)。

有相同

a = x ? x : y;

问号是条件运算符。该代码意味着如果f ==,则成为1返回,否则,返回0的代码可以改写为

int qempty()
{
  if(f==r)
    return 1;
  else
    return 0;
}

这可能不是做最彻底的方法,但希望可以帮助您的理解。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top