++a+=a++;和++a+=++a
求助:++a+=a++;和++a+=++a;
如果a=4,上述两个表达式的结果是多少:给定的答案是11 和 12,不懂?为什么呢?谢谢各位大神赐教!
------解决思路----------------------
++a+=a++;可以改为a = ++a + a++;
a=5+5=10,然后a=a+1=11;(最右边的++导致结果+1)
++a+=++a; 可以改为a = ++a + (++a);
a= 6+6 =12,第一个++a不稳定,随最右边的++a改变
主要看是++先做,还是+先做,如果+先做,则结果不稳定(可能要+1,可能不只加一次);如果是最右边的++先做,则中间变量不稳定。
下面几个式子,可参考一下:
a=2;
a= ++a + a++ ;
a= a++ + a++ ;
a= a++ + (++a) ;
a= ++a + (++a) ;
面试题里喜欢这么搞
------解决思路----------------------
简单说,就是:
a++ 是先使用a的值,后自增a的值
++a 则是先自增a的值,然后再使用a的值
------解决思路----------------------
可以去c/c++板块看看置顶的文章
------解决思路----------------------
请仔细认真的看看——http://bbs.****.net/topics/370153775
------解决思路----------------------
未定义的东西,就跟研究进门应该迈哪只脚一样扯淡。
------解决思路----------------------
楼主你要是认真看了,就不会有这样的疑问了吧
如果a=4,上述两个表达式的结果是多少:给定的答案是11 和 12,不懂?为什么呢?谢谢各位大神赐教!
------解决思路----------------------
++a+=a++;可以改为a = ++a + a++;
a=5+5=10,然后a=a+1=11;(最右边的++导致结果+1)
++a+=++a; 可以改为a = ++a + (++a);
a= 6+6 =12,第一个++a不稳定,随最右边的++a改变
主要看是++先做,还是+先做,如果+先做,则结果不稳定(可能要+1,可能不只加一次);如果是最右边的++先做,则中间变量不稳定。
下面几个式子,可参考一下:
a=2;
a= ++a + a++ ;
a= a++ + a++ ;
a= a++ + (++a) ;
a= ++a + (++a) ;
面试题里喜欢这么搞
------解决思路----------------------
简单说,就是:
a++ 是先使用a的值,后自增a的值
++a 则是先自增a的值,然后再使用a的值
------解决思路----------------------
可以去c/c++板块看看置顶的文章
------解决思路----------------------
请仔细认真的看看——http://bbs.****.net/topics/370153775
------解决思路----------------------
未定义的东西,就跟研究进门应该迈哪只脚一样扯淡。
------解决思路----------------------
楼主你要是认真看了,就不会有这样的疑问了吧