short类型的范围是-32,768 到 32,767,例如:定义个 short 类型的变量:short x = 32767;
在上式中,整数 32767 是int型,它从 int 隐式转换为 short。
但是如果整数的长度超过了 short 存储位置的大小,则将产生编译错误,比如short x = 32768;
所以楼主说的short sum=1+2;可以看做short sum=3;3没有超过范围,没有丢失精度,即int型3隐式转换为 short 3。
另外,如果定义了int a=1,b=2 ,short sum=a+b;编译器则认为不能发生隐式转换。
|