选择题2-2

选择题2-2

. 单选题

设有如下变量,以下哪些语句编译不出错?(选择一项)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
慕田峪8152788 2018-08-21 11:46:30

我也觉得奇怪,我用eclipse编译c = c + i是通过的直接输出了m,我觉得这个题应该是双选题

在Java中这种用法不是和C++中一样吗,希望老师改一下答案

http://img1.sycdn.imooc.com//climg/5b7b8b110001fb1c03430503.jpg

  • 同学你好,c=c+i和c+=i底层的实现原理是不一样的,+=底层多了一个强制转换,祝学习愉快~
    2018-08-21 14:34:08
  • 刚才又试了一下c = c + i,确实报错了,感谢回复 报错信息就是提示需要用强制类型转换Type mismatch: cannot convert from int to char
    2018-08-21 17:05:39
好帮手慕珊 2017-10-26 09:36:41

i+=s;相当于i=i+s;因为s为字符串类型,所以i=i+s;实际上是在做字符串连接运算,其结果也是字符串类型。字符串类型的数据是不能赋值给整型变量i的,因此i=i+s不对。但是这个结果可以赋值给字符串变量s,所以s+=i是对的。

c+=s;的错误原因与i+=s;是一样的

c=c+i;要写成c=(char)(c+i);c+i计算后的结果是整型,赋值给字符型变量c需要进行强制转换

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


大口袋_Hello 2017-10-26 00:29:01

我的理解是这样的。

s+=i;

因为s定义成了一个字符,s+=i;也可以写成s=s+i;赋值运算符右边的是字符串s跟整型i是可以被定义的。

其他的三个选项,由于i是整型变量,字符串不符合,所以错误,c是单字节的一个字符,后面的两个运算同样无法赋值。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师