关于累加器例如sum+=i与sum=sum+i的区别

程序中往往我们都认为sum+=i与sum=sum+i是等价的,但在类型转换时是有区别的

例如:

下面是sum=sum+i的情况:编辑通不过,计算时发生类型转化,int类型不会转换成short类型,需要我们强制转化

      short sum=0;

short i=0;
for (; i < 10; i++) {

// sum=sum+i;     这种是报错的

                      sum=(short) (sum+i);//  这种是对的

}
      

下面是sum+=i的情况:在编译的时候自行转化计算,能通过编辑,因为它是赋值,不是四则运算

      short sum=0;
short i=0;
for (; i < 10; i++) {
sum+=i;
}

你可能感兴趣的:(关于累加器例如sum+=i与sum=sum+i的区别)