java中++运算符的深入探讨 +++

 

一道二级的题目:

int x=5,m=0;

x+=x+++(x+++m);

  最后x=16M=0;

  拆开来:

  第一步: X=x+( x+++(x+++m))  //这里x在前,而不是在后,就是说a+b,结果是a=a+b,而不是a=b+a,这一点可以通过下面这个小实验证明:

String s="s1";

        String s2="s2";

        s2+=s;

        System.out.println(s2);

输出结果是:  S2s1

 

回到刚才

第二步:

X=5+(5+(6+0) ,得到6的结果非常意外!

最终结果是16,非常意外!

这里,我们要修正以前对++的认识,以前认为++是在运算结束之后+1,而实际上在参与运算之后它就+1了!!

下面用这个例子来验证:

public static void main(String args[]){

       int i=0;

    i=i+++m(i);

       System.out.println(i);

}

static int m(int i){

       System.out.print(i+",");

       return 0;

输出结果是1,0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值