数值return ++ 的坑

在方法return时,如果数值在这里++,比如说

int a = 0;
return
++a;

这时候接受到的这个返回值想要的是1,但事实上返回的是2...

可能因为return先发现表达式++,然后执行了整个++a,然后因为是表达式所以会继续执行表达式剩余的部分a,但是前面又++,所有又来一次++(纯属YY)

所以需要return ++0的时候还是用括号括起来:

return (++a)

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

还有一个就是如果return 0++ ,结果永远是0,

因为 0++ 表示先运算再++,

return返回时发现0,直接返回了没有执行后面的++

posted @ 2018-05-16 16:41  二小欧巴  阅读(167)  评论(0编辑  收藏  举报