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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张洪慊 于 2013-5-1 15:43 编辑

http://bbs.itheima.com/thread-48226-1-1.html
  1. 在上面帖子中的
  2. char[] buf =new char[3];
  3. 除了第一个元素,后面打印的均是默认值,空字符,我的机器为什么会打印出a
  4. 下面讨论了下:
  5. 以前一直以为字符数组默认值为ASCII码为0的字符->ASCII码表中说的是NULL->空字符
  6. 这里的NULL和java中的NULL是两个概念,null在java中代表常量,通常用于赋值给引用.
  7. 这里我们就把它当成空字符.
复制代码
  1. 那么如果把一个空字符赋值给一个字符变量?
  2. char c='';//编译无法通过
  3. 于是找到这个:http://baike.baidu.com/view/73.htm#1_1
  4. C中用'\0'表示空字符,java中经过测试也可以(我刚知道- -)
  5. char c='\0';//可以

  6. //测试字符数组默认值
  7. char[] ch= new char[3];
  8. System.out.println(ch[1]=='\0');//true

  9. 我想输出下数组中的元素:
  10. System.out.println(ch[1]);//按理说在屏幕上应该显示空白,但是我的机器打印了a - -!!
  11. System.out.prinltn((char)0);//还是a(应该输出ASCII码为0的字符)
  12.   我在不停查找最终找到这个解释:维基百科空字符http://zh.wikipedia.org/wiki/%E7%A9%BA%E5%AD%97%E7%AC%A6

  13. 其中有一句话:这个字符原来的意思类似NOP指令,当送到列表机或终端机时,设备不需作任何的动作(不过有些设备会错误的打印或显示一个空白)。
  14. 额...就这些了,不吐不快(*^__^*)  
复制代码

4 个回复

倒序浏览
System.out.println(ch[1]=='\0');//true这句话是对的啊,但是我的环境下面打印System.out.println(ch[1]);出现的是空白啊,和楼主的结果不一样啊,不知道是环境的问题吗?

点评

空白是正常的,但是我的机器竟然打印出了a 下面提到 "不过有些设备会错误的打印或显示一个空白"  发表于 2013-5-1 16:05
回复 使用道具 举报
一直在路上 发表于 2013-5-1 16:02
System.out.println(ch[1]=='\0');//true这句话是对的啊,但是我的环境下面打印System.out.println(ch[1]); ...

看下维基百科空字符
http://zh.wikipedia.org/wiki/%E7%A9%BA%E5%AD%97%E7%AC%A6
回复 使用道具 举报
一直在路上 发表于 2013-5-1 16:02
System.out.println(ch[1]=='\0');//true这句话是对的啊,但是我的环境下面打印System.out.println(ch[1]); ...

楼主能给点技术分吗?小弟缺分,还不到10分,我想明天申请入学考试了
回复 使用道具 举报
一直在路上 发表于 2013-5-1 16:07
楼主能给点技术分吗?小弟缺分,还不到10分,我想明天申请入学考试了

..............这个会有的,你只要不断在论坛回答问题,很快的
不过我建议大部分时间学习,在学习过程中遇到的问题就是
别人会遇到的.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马