【问题标题】:What does ? and : mean in C++? [closed]有什么作用?和:在 C++ 中是什么意思? [关闭]
【发布时间】:2013-06-02 20:54:20
【问题描述】:

比如我有这个说法

return ( m > n ? m : n );

m > nm : n 之间的问号是什么意思?
m : n 中的冒号是什么意思?

【问题讨论】:

  • 谷歌C ternary operatorconditional expressions
  • 提示:在python中写成:return m if m>n else n
  • @H2CO3 和其他人:如果你们都想继续辩论,请把它带到它所属的meta
  • 我不明白为什么这个问题有这么大的反对票; +1
  • ?字面意思是“是m > n?”,如果为真则返回m,如果为假则在您的示例中返回n

标签: c++


【解决方案1】:

它的技术名称是条件运算符,是if-then;else的简写。

if m > n
  then m
  else n

或者在实际的 C++ 语法中:

if(m > n)
{
  return m;
} 
else 
{
  return n;
}

m > n 和 m:n 之间的问号是什么意思?做什么 m : n 中的冒号是什么意思?

?: 是条件运算符语法的一部分。 ? 表示左表达式应该是布尔评估 truefalse: 描述了 truefalse 结果。 : 的左侧是表达式计算结果为 true 时的结果,: 的右侧是表达式为 false 时的结果

【讨论】:

  • 哈哈。谢谢 :) 快速输入和编辑,而不是考虑正确的语法。
  • 顺便说一句,它也适用于赋值运算符的左侧!
  • @franji1 它不是标准 C。虽然它标准 C++。
  • @Elazar - 谢谢!我不知道。
【解决方案2】:

这是三元运算符,表示如果m大于n则做m,否则做n,相当于:

 if(m>n) 
    return m; 
 else 
    return n;

【讨论】:

  • 并且,为了记录,运算符的名称是“条件运算符”,而不是“三元运算符”。
  • 它是 a 三元运算符 :)
  • "如果 m 大于 n,则执行 m,否则执行 n" - 不。可能:“如果 m 大于 n,则计算为 m,否则计算为 n”
  • 嗯,我想我在想'做'作为表达。如果您想要准确,评估到也是错误的。评估表达式 m 将是准确的..
  • 这是“懒惰”的部分。所以“评估 m 然后评估那个值”:)
猜你喜欢
  • 2012-12-11
  • 2016-01-07
  • 2022-01-01
  • 2013-10-25
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2010-12-29
相关资源
最近更新 更多