【新手问题】关于运算符
public class class2 {public static void main(String args[]){
int h=4;
h+=h-=h*h;
System.out.println("-----h:"+h);
}
}
这里为什么在最终结果出来之前h参与中间运算的值始终是4,在做完h-=h*h这个后h的值不会变么?
这个问题在C语言里貌似是属于“未定义行为”,编译器会发出警告.java为什么不报错呢? 实际工作中从来没写过这种古怪代码,也可能是你编译器报警等级设低了的缘故。而且Java的JVM目前基本上都是Oracle/Sun一系的,没有别的。IBM和原Bea的虚拟机实际工作中很难见到。至于用GCC来编译Java更属于蛋疼行为。所以对于这种问题可能就不像有无数编译器的C一样那么重视。
页:
[1]