从函数返回时,以下编码风格似乎不起作用 -
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/