i += j ;与 i = i + j ; 的区别

来源:互联网 发布:矩阵论第二版答案华科 编辑:程序博客网 时间:2024/06/05 17:43

首先要知道 i += j; 等于 i = (T) (i + j); 这个 T 是 i 的类型,而 i = i + j; 是同类型的。

举个例子:int  x =  5;

                   x += 5.6; //这个语句是完全正确的,可以通过编译器,因为它等于x =(int)(x+5.6); 结果为10

 

然而 int i = 5;

         float f = 5.6;

         x = x + f ; //这个句子是不能通过编译的,因为他们的类型不一致 ,一个浮点型,一个整型。