下列赋值不合法的是( )
A) float a = 2.0; B) double b = 2.0 ; C) int c = 2; D) long d = 2;各位大侠帮个忙,选了答案后解释一下原因,在此谢过了!
A) float a = 2.0; B) double b = 2.0 ; C) int c = 2; D) long d = 2;各位大侠帮个忙,选了答案后解释一下原因,在此谢过了!
调试欢乐多
你可以将一个占用空间小的类型赋给占用空间大的,但是不能将一个占用空间大的赋给占用空间小的。
另外,在运算过程中,对于中间结果的处理也遵循这个规定。
比方说
short s = 40;
s = s >> 2;//这个也是会报编译错误的。必须改为
s = (short)s >> 2;
Afloat a=2.0f;
float a = 2.9f;
因为2.0默认的是double类型的;改正float a = 2.0f;
其他的2,在默认情况下是int类型的,拿答案D来说,long
要比int类型精度高,int类型会自动转换成long类型。
以后只要碰到到float的变量赋值只要记住在后面加个f就可以了
不用加L是可以的。
因为2默认的是一个int型的数值,当你把它赋给一个long类型的变量时,系统会把它自动转换为long型的数据去处理。