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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0_TNT_0 中级黑马   /  2014-12-10 21:30  /  2793 人查看  /  31 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.        short s = 1;
        s = s + 1;               
        short s = 1;
        s+=1;
                       
        请问能否编译通过么?

31 个回复

倒序浏览
应该是不能的,因为s=s=
回复 使用道具 举报
2. 问 char  c  =  7;
回复 使用道具 举报
char c = 7;System.out.println(c);    请问输出结果是什么?  求大神来讨论啊
回复 使用道具 举报
char c = 7;System.out.println(c);
char b = '7';System.out.println(b);   

请问输出结果分别是什么?  为什么会这样呢?变量c 和 b是什么类型的?都是char类型?
求大神解释啊。。。。
回复 使用道具 举报
编译能通过,结果出不来。:L
回复 使用道具 举报
0_TNT_0 中级黑马 2014-12-10 21:41:39
7#
18334705181 发表于 2014-12-10 21:33
应该是不能的,因为s=s=

什么意思?
回复 使用道具 举报
sam3say 中级黑马 2014-12-10 21:56:34
8#
这个,哈哈哈哈
回复 使用道具 举报
编译不能通过。
short s = 1;
        s = s + 1;  //等号右边的s+1计算完类型提升为int型,不能直接赋值给等号左边的s。改为s=(short)(s+1);
回复 使用道具 举报
爱卿 中级黑马 2014-12-10 22:15:03
10#
会编译失败,s=s+1;这句运算的时候会自动提升到int类型 之后再赋值给short类型的s 会损失精度
回复 使用道具 举报
爱卿 中级黑马 2014-12-10 22:16:51
11#
0_TNT_0 发表于 2014-12-10 21:33
2. 问 char  c  =  7;

这个可以的 数字7在编码表里面代表一个符号 具体符号我不知道。。反正是可以编译通过的 今天我还特意试了一下char c =111;这样都是可以的
回复 使用道具 举报
Honelyboy 发表于 2014-12-10 22:09
编译不能通过。
short s = 1;
        s = s + 1;  //等号右边的s+1计算完类型提升为int型,不能直接赋值 ...

厉害  啊  大神  多谢
回复 使用道具 举报
只能看看了,学习中。
回复 使用道具 举报
爱卿 发表于 2014-12-10 22:16
这个可以的 数字7在编码表里面代表一个符号 具体符号我不知道。。反正是可以编译通过的 今天我还特意试了 ...


char c = 7;System.out.println(c);
char b = '7';System.out.println(b);   

请问输出结果分别是什么?  为什么会这样呢?变量c 和 b是什么类型的?都是char类型?
求大神解释啊。。。。
回复 使用道具 举报
高慧觉 发表于 2014-12-10 21:39
编译能通过,结果出不来。

大神 试过了么
回复 使用道具 举报
莫名的眼熟呢,难道:lol
自赋值带强制转换功能
回复 使用道具 举报
高慧觉 发表于 2014-12-10 21:39
编译能通过,结果出不来。

大神是 1208 的么
回复 使用道具 举报
爱卿 中级黑马 2014-12-10 22:40:27
18#
0_TNT_0 发表于 2014-12-10 22:21
char c = 7;System.out.println(c);
char b = '7';System.out.println(b);   

第一行输出的结果是一个输出一个控制符BEL 这个在控制台是看不到的 看起来就是个空值,用的println 所以你看到的就会是一行空的。你可以百度ASCⅡ 这个编码表详细的介绍了每个字符在计算机内的表示方法。比如65是大写的A。
第二行输出结果就是7 因为这个7用单引号引起来了 他就是表示字符7. 同理 如果你用ASCⅡ编码表输出7的话 你可以试试char a=55;System.out.print(a); 输出结果还是7.
回复 使用道具 举报 1 0
爱卿 发表于 2014-12-10 22:40
第一行输出的结果是一个输出一个控制符BEL 这个在控制台是看不到的 看起来就是个空值,用的println 所以 ...

我试过了,第一句话char c = 7;System.out.println(c);   会发出一个“嘀”声,  那 变量 c  还是 char 类型的么  ?  
回复 使用道具 举报
爱卿 中级黑马 2014-12-10 22:49:07
20#
0_TNT_0 发表于 2014-12-10 22:44
我试过了,第一句话char c = 7;System.out.println(c);   会发出一个“嘀”声,  那 变量 c  还是 char  ...

7号编码好像就是个什么BEL响铃  至于c 没报错 说明是char类型吧。 我也是才学几天。 不确定
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马