1.i+=1;i=i+1;i++的区别与联系:
区别:
(1)从执行效率上来看:i++的效率最高;i+1=的效率次之;i=i+1效率最低;
(2)从执行的方式上来看:
i=i+1:读取右边i的地址;然后进行i+1操作;接着获取左边i的的地址;最后将i+1的值赋值给i(编译器并不认为"="两边的值等)
i+=1:读取i的地址;然后进行i+1操作,最后将i+1的地址赋值给i
i++:读取i的地址;然后进行i+1自增操作;
(3)i=i+1与i+=1的值相等吗?在什么样的情况i=i+1错误?在什么样的情况下i+=1错误?
答案:不一定; short i=1;i=i+1是错误的,在进行i=i+1操作时数据类型自动的进行了的提升操作;所以结果会是int类型,再将值赋给类型为short的i时,编译器会提示需要强制转换数据类型;,?
?