a++ 与++a在内存中的正确姿势

来源:互联网 发布:cmd查询数据库 编辑:程序博客网 时间:2024/06/11 23:22

        我们平时解释b=a++与b=++a是这样解释的:

        b=a++是先把a的值赋给b,然后a自加1;

        b=++a是a先自加1,在把值赋给b。

        那么如果a=3:

        b=a++计算后b=3,a=4;

        b=++a计算后b=4,a=4;

        验证一下确实如此:

       

       

       接下来我们分析一下a=a++;的值,先赋值a=3,再自加a=4;所以a最后的结果应该是4,所以我们验证一下:

       

        结果却是a=3,为什么呢,其实我们之前所说的先赋值再自加并不准确,我们都知道赋值运算是最后计算的,先计算等号右边的值,最后再赋值。

        在内存中a=a++的运算是这样的,在a做加法运算之前,先开辟一片临时区域保存a的值,然后a再做自加运算,a做完自加运算之后,载把临时区域的值赋值给等号左边的变量即a,a=a++相当于:

       temp=a;//temp=3

       a=a+1;//a=4

       a=temp;//a=3

      所以a最后的值是3。

  

     (*^__^*) ——END

2 0
原创粉丝点击