A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 啊全 中级黑马   /  2015-4-24 22:24  /  889 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

short a = 10, b=20,c ;
  c = (short)(a + b);
short a = 10, b=20,c ;
  c + =(a + b);

13 个回复

倒序浏览
c += (a+b)   这句有问题   c= c+30;  这个结果为int类型   而c  是char类型  所以不能赋值成功
回复 使用道具 举报 1 0
+=  是一个运算符号,二楼说的不对
回复 使用道具 举报
caotierong 发表于 2015-4-24 22:31
c += (a+b)   这句有问题   c= c+30;  这个结果为int类型   而c  是char类型  所以不能赋值成功 ...

+= 是一个运算,不存在你说的问题
况且前面已经定义了,a和b均为short类型,所以不存在你说的 不能赋值
况且没有定义C为char类型
回复 使用道具 举报
nine789 发表于 2015-4-24 22:36
+= 是一个运算,不存在你说的问题
况且前面已经定义了,a和b均为short类型,所以不存在你说的 不能赋值
...

哦  对的   我搞错了,但是你确实是把c定义成了char类型啊
回复 使用道具 举报
caotierong 发表于 2015-4-24 22:40
哦  对的   我搞错了,但是你确实是把c定义成了char类型啊

哎   看错了   是short
回复 使用道具 举报
c+=(a+b)   +=后面需要加上强转,虽然+=是运算符,但是计算机在运算的时候会将其全部转换为二进制进行运算,运算之后得到的数是一个int类型的值,而c是short类型,int类型要高于short类型,所以需要进行强转. 希望能帮到你.
回复 使用道具 举报
caotierong 发表于 2015-4-24 22:40
哦  对的   我搞错了,但是你确实是把c定义成了char类型啊

你从哪里看到c 是char  ?
回复 使用道具 举报
xfliyy 来自手机 中级黑马 2015-4-24 22:43:19
9#
c不要初始化?
回复 使用道具 举报
nine789 发表于 2015-4-24 22:42
你从哪里看到c 是char  ?

看错啦,不好意思
回复 使用道具 举报
caotierong 发表于 2015-4-24 22:46
看错啦,不好意思

.....................
技术分拿来,我要技术分。我要技术分
回复 使用道具 举报
ixue 初级黑马 2015-4-24 22:50:14
12#
c + =(a + b)
我想语句是对的,但是C没初始化,无法运算
回复 使用道具 举报
同上 感觉c要初始化才行
回复 使用道具 举报
重复声明:L了吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马