![[单项选择题] 设有定义int i=123;long j=456;,下列赋值不正确的是( )。,第1张 [单项选择题] 设有定义int i=123;long j=456;,下列赋值不正确的是( )。,第1张](/aiimages/%5B%E5%8D%95%E9%A1%B9%E9%80%89%E6%8B%A9%E9%A2%98%5D+%E8%AE%BE%E6%9C%89%E5%AE%9A%E4%B9%89int+i%3D123%EF%BC%9Blong+j%3D456%EF%BC%9B%EF%BC%8C%E4%B8%8B%E5%88%97%E8%B5%8B%E5%80%BC%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E6%98%AF%EF%BC%88+%EF%BC%89%E3%80%82.png)
[单项选择题] 设有定义int i=123;long j=456;,下列赋值不正确的是( )。
A. j=i;
B. j=(long)i;
C. i=(int)j;
D. i=j;
正确答案:D
参考解析:选项A)j=i,因为j是long型,而等号左边是int型,所以将位数少的数值向位数多的数值转换时,可以自动转换,所以选项A)正确。选项B)j=(long)i,当然既能自动转换,我们在前面加上位数多的那个数据类型的名称,也只是更加安全,所以选项B)正确。选项C)i=(int)j,它属于必须进行强制转换数据类型的那种情况,因为想把一个位数多的数据转换成一个位数更少的数据类型,必须强制转换,方法是在()中说明向哪个数据类型转换,结果是使j的精度降低到int型。注意:选项D)i=j,没有进行强制转换,会发生编译错误。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)