Function 为什么最终结果不同?

Function 为什么最终结果不同?,function,syntax,return,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 ; 中间、l、r、n都是整数 有人能帮我理解为什么吗?您需要添加括号,因为“+”接管了三元运算符“?:” return (int) minim(mid-

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

    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 ; 
中间、l、r、n都是整数


有人能帮我理解为什么吗?

您需要添加括号,因为“+”接管了三元运算符“?:”

return (int) minim(mid-l,r-mid) + ((int) (mid+mid==n)?1:0);
由于操作员

意味着

不是


如果你发现下面有用的答案,你应该考虑通过点击复选标记图标来接受其中的一个。
return (int) minim(mid-l,r-mid) + (int) (mid+mid==n)?1:0;
return ((int) minim(mid-l,r-mid) + (int) (mid+mid==n))?1:0;
return (int) minim(mid-l,r-mid) + ((int) (mid+mid==n))?1:0);