首先要知道 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 ; //这个句子是不能通过编译的,因为他们的类型不一致 ,一个浮点型,一个整型。
首先要知道 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 ; //这个句子是不能通过编译的,因为他们的类型不一致 ,一个浮点型,一个整型。