从效率上看
a += b直接在a中加了b;
a = a + b则是用一个临时变量temp记录a的值,类似过程:
temp = a;
temp +=b;
a = temp;
多了一次2次拷贝。
注意,当a是整数时,效率相差的可能不是很明显,但是当a是字符串的时候,多了两次字符串拷贝对效率的影响是非常大的。
从编译角度看
对于不同类型的a,b来说
1 不同类型的两个变量在进行运算的时候,我们经常说到的是类型的转换问题。这里,记住两点:一、运算过程中,低精度的类型向高精度类型转换。二、如果将高精度的数值赋值给低精度类型变量,则必须要进行显性的强制转换。
2 对于a+=b;这个式子,要明确的一点是,+=运算中,结合了强制类型转换的功能,因此,不会出现编译错误;而对于a=a+b;这个式子,因为是简单的运算,没有类型转换,在编译过程中会报错。