c-带三元运算符的return是什么意思



我当前在读取此代码时遇到问题。有人知道它的作用吗?

if (c == a)
return q[a] ? 1 : 0;

if内部的代码按照匹配运算符优先级的顺序进行求值。

因此,首先评估a + 1,然后评估b == (a + 1)

如果b等于(a + 1),则如果q[a]true,则返回1,否则返回0

参见C#运算符和表达式或优先级和求值顺序(根据语言的不同,您需要谷歌"语言名称"+运算符优先级(。

语句

return q[a] ? 1 : 0;

相当于

// Exact type of "zero" depends on the type of q[a]
if (q[a] != 0) 
return 1;
else
return 0;

return !!q[a];

如果q[a]为非零,则返回1,否则返回0。

如果c==aq[a]=true,则返回1,否则返回0

相关内容

  • 没有找到相关文章

最新更新