tempnetbar:感谢你对我的几个问题的指点.
关于这个问题,我已经在很多地方问过很多人,包括在csdn上,现在还是觉得你把它看成
x=(float)(x+1.0);最合适.
象:byte x=1;x=x+1;//错误
而byte x=1;++x;//正确
也可以这样理解x=(byte)(x+1);
不过至于你说的"x+=1.0后x为float类型",我觉得那是肯定的.因为运算符的操作数类型不一致时要进行类型指的是值或者说变量的值,而不是变量,变量一旦声明好类型就应该不会再变了.
还有你说的"x+=1.0时编译器并没有把它转换为double",我觉得这样说是错误的.因为byte,short,char类型的值或者变量再参加运算前先必须转换成int型,哪怕是2个byte型的参加运算;
float类型也是,一定要先转换成double型.所以根据这个,使你前面的那种说法更加可信度(虽然也不一定正确)
tempnetbar,你说过分深究这样的问题没有意义,不知道为什么,我看到这里搞不明白好象就不想往下看,好在现在我觉得你的这种说法我觉得可以接受,能解释这个问题了.看来我的学习方法有问题.