日期:2014-05-20  浏览次数:20757 次

i=i+1和i++以及i+=1的区别?
从编译方法、运行效率等方面说明。
或者自己理解这种题应该怎么做?
------最佳解决方案--------------------
http://www.ticmy.com/?p=285

http://www.ticmy.com/?p=43
------其他解决方案--------------------
i++等价于i+=1
i=i+1和i+=1还是有差别的
如果i是short类型 i+=1不会报错 但是i=i+1就会报错
是因为1是int类型的+一个short类型结果会被自动转换为int类型,这时如果再赋值给一个short类型的变量会报可能损失精度的错误
但i+=1不会改变i的类型 所以赋值可以成功
------其他解决方案--------------------
i=i+1;//因为1默认是int型,所以i先转为int,然后相加,结果为int型,然后结果再转型为i的定义类型
i++;//就是,在i++;这句代码后面的代码中,i就变成了i+1;
i+=1;//http://blog.csdn.net/haorengoodman/article/details/8148801

------其他解决方案--------------------
i=i+1;//是在i的基础上加1,重新赋值给变量i 
i++;//是在i的基础上相加
i+=1;//和第一个意义一样
------其他解决方案--------------------
引用:
i=i+1;//是在i的基础上加1,重新赋值给变量i 
i++;//是在i的基础上相加
i+=1;//和第一个意义一样

是这样的
------其他解决方案--------------------
还木有比较满意的答案