当从一个函数返回时,下面的编码风格确实不似乎工作 -为什么最终结果会有所不同?
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;
但下面的代码工作正常 -
int x = minim(mid-l,r-mid);
int y = (mid+mid==n)?1:0;
return x+y ;
中旬,L,R,N都是整数。
有人可以帮我理解为什么吗?
您需要添加括号为 '+' 在三元运算符采用precedence ':'
return (int) minim(mid-l,r-mid) + ((int) (mid+mid==n)?1:0);
谢谢quantdev! –
由于运营商precedence
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);
谢谢AlexD! –
如果您发现下面的答案有用,您应该考虑通过点击复选标记图标来接受其中的一个答案。 – 2016-11-06 00:57:05