long a=65535*65535 //这个东西超出了允许表示的范围
------------------------------------------------------
long a=65535*65535l;
long b=2;
b+=a;
//这时候输出b的时候却可以准确输出
----------------------------------------------------------
第一个那个报错是不是因为65535*65535这个数被默认为int而无法表示
这么说的话,long a=65535*65535l;这句的执行过程应该是在编译器中先生成一个值为65535*65535的long型变量然后赋值给a
而第一个报错就是在编译器生成值为65535*65535的int型变量时出错了