黑马程序员技术交流社区

标题: 这代码有问题吗。 [打印本页]

作者: 啊全    时间: 2015-4-24 22:24
标题: 这代码有问题吗。
short a = 10, b=20,c ;
  c = (short)(a + b);
short a = 10, b=20,c ;
  c + =(a + b);

作者: caotierong    时间: 2015-4-24 22:31
c += (a+b)   这句有问题   c= c+30;  这个结果为int类型   而c  是char类型  所以不能赋值成功
作者: nine789    时间: 2015-4-24 22:34
+=  是一个运算符号,二楼说的不对
作者: nine789    时间: 2015-4-24 22:36
caotierong 发表于 2015-4-24 22:31
c += (a+b)   这句有问题   c= c+30;  这个结果为int类型   而c  是char类型  所以不能赋值成功 ...

+= 是一个运算,不存在你说的问题
况且前面已经定义了,a和b均为short类型,所以不存在你说的 不能赋值
况且没有定义C为char类型
作者: caotierong    时间: 2015-4-24 22:40
nine789 发表于 2015-4-24 22:36
+= 是一个运算,不存在你说的问题
况且前面已经定义了,a和b均为short类型,所以不存在你说的 不能赋值
...

哦  对的   我搞错了,但是你确实是把c定义成了char类型啊
作者: caotierong    时间: 2015-4-24 22:42
caotierong 发表于 2015-4-24 22:40
哦  对的   我搞错了,但是你确实是把c定义成了char类型啊

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

你从哪里看到c 是char  ?
作者: xfliyy    时间: 2015-4-24 22:43
c不要初始化?
作者: caotierong    时间: 2015-4-24 22:46
nine789 发表于 2015-4-24 22:42
你从哪里看到c 是char  ?

看错啦,不好意思
作者: nine789    时间: 2015-4-24 22:48
caotierong 发表于 2015-4-24 22:46
看错啦,不好意思

.....................
技术分拿来,我要技术分。我要技术分
作者: ixue    时间: 2015-4-24 22:50
c + =(a + b)
我想语句是对的,但是C没初始化,无法运算

作者: xfliyy    时间: 2015-4-24 22:59
同上 感觉c要初始化才行
作者: Chans_宇    时间: 2015-4-24 23:04
重复声明:L了吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2