为了账号安全,请及时绑定邮箱和手机立即绑定

为什么没有算++

package fist; public class fist { public static void main(String[] args){ int c=1; int xx=3*5%(4*c++);//不是先算小括号的吗?为什么没有算++的结果; System.out.println(xx); System.out.println(c); } } 为什么结果是3而不是7,不是先算括号里面的吗?结果没算啊?为什么啊?谢谢?

正在回答

4 回答

c++是先用c的值,用完之后再加的,++c就是先加1赋值给c,你换成++c试试

0 回复 有任何疑惑可以回复我~
(4*c++)这个先算c++先运算后自增,所以c++等于1,之后再乘4,另外c++这种用在表达式不存在加1,


0 回复 有任何疑惑可以回复我~

同学,他是计算了的,运算的顺序是这样的。先算括号里面的(4*c++),这个语句其实分成两部分:“4*c;c=c+1”,一,4*c,这时c的值为1,二,c++;1+1=2,c的值才变成2.  所以括号里面的值是4,只是又添加了一个给c加一的步骤,因此前面的15除以4,余3. 如果你想让4乘2,可以用括号来实现 int xx=3*5%(4*(c++)) . 这里要注意的是:c++ 并不是“c+1”,而是一个赋值语句“c=c+1”的简写,我觉得这可能是你疑惑的地方

0 回复 有任何疑惑可以回复我~
#1

滴水0藏海 提问者

15%(4*(c++))的结果也还是3,没有算c的自加,15%(4*++c)才行
2017-03-09 回复 有任何疑惑可以回复我~

C++,是用了C之后再把C加一,3*5%4=15%4=3........3,所以xx为3,最后C加1

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么没有算++

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信