从函数返回时,以下编码风格确实 NOT 似乎有效 -

    return (int) minim(mid-l,r-mid) + (int) (mid+mid==n)?1:0;

但以下代码工作正常 -
    int x = minim(mid-l,r-mid);
    int y = (mid+mid==n)?1:0;
    return x+y ;

mid, l, r, n 都是整数。

有人可以帮我理解为什么吗?

最佳答案

您需要添加括号,因为 '+' 在三元运算符 '?:' 上使用 precedence

return (int) minim(mid-l,r-mid) + ((int) (mid+mid==n)?1:0);

关于function - 为什么最后的结果不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40444881/

10-11 21:50
查看更多