function - 为什么最终结果会有所不同?

标签 function syntax return

从函数返回时,以下编码风格似乎不起作用 -

    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/

相关文章:

c - C中的函数名是什么类型?

function - VB6中如何将空值传递给函数?

python - 在 __next__() 中修改对象之前返回对象

java - void函数中的return语句有什么用

java - 将函数作为参数传递给对象列表

C 错误 : undefined reference to function, 但已定义

c - C 中的 int* ptr 和 int *ptr 有什么区别?

sql - tSQL CASE 控制执行

ruby - 在 VIM 中更改 `rubyLocalVariableOrMethod` 颜色

try/catch 后的 Java 返回类型