从函数返回时,以下编码风格确实 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/