问题
单项选择题
假设有下列声明语句:
int i,j;
float x,y;
double u,v;
下面______个赋值是合法的 ( )
A.i=x;
B.x=u+y;
C.x=23.4+j*y;
D.v=(int)x;
答案
参考答案:D
解析: 该题考查的是变量的赋值。赋值是用等号运算符(=)进行的。它的意思是“取得右边的值,把它复制到左边”。右边的值可以是任何常数、变量或者表达式,只要能产生一个值就行。但左边的值必须是一个明确的、已命名的变量。也就是说,它必须有一个物理性的空间来保存右边的值。举个例子来说,可将一个常数赋给一个变量(A=4;),但不可将任何东西赋给一个常数(比如不能4=A) 。Java还允许将一种类型的变量赋给另一个变量,同时不进行显示造型同样可以进行某些特定的赋值转换,允许的转换包括:byte→short→int→ long→float→double 和 char→int。而选项A中 float型不能赋给int型,选项B中double型不能赋给float型,选项C中经过转变后也是把double型赋给float型了,选项D中使用了强制转换,把x强制转换成int型,所以是正确的。