java中关于数组越界的小问题

Litter_pricess 2012-05-16 09:40:19
char exp=new char[16];
exp="fbc##de#g##f###".toCharArray();
exp里面是15个,16个则是越界了。。
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdxing007 2012-05-17
  • 打赏
  • 举报
回复
"fbc##de#g##f###".toCharArray() 这是一个数组
exp 又是一个数组。
TnQin 2012-05-16
  • 打赏
  • 举报
回复
验证一下,第一行写错了。
char[] exp=new char[16];
....
iGoodLoser 2012-05-16
  • 打赏
  • 举报
回复
你第一行写错了吧?应该char[]不是char
Litter_pricess 2012-05-16
  • 打赏
  • 举报
回复
可是当exp="afbc##de#g##f###".toCharArray();这里面仅仅添加一个a使得字符串为16时,程序错误,提示数组越界。
iGoodLoser 2012-05-16
  • 打赏
  • 举报
回复
分析一下你这两行代码的执行过程吧:
1)定义一个长度为16的char数组,然后通过exp变量引用
2)将“********”调用tocahrarray()放回返回一个新的char数组,并将新的数组引用赋值给exp
所以exp指向的不是同一个数组,无论“******”有几个字符都不会越界。因为是两个char数组
成一粒 2012-05-16
  • 打赏
  • 举报
回复
是0到15,16当然越界了
Litter_pricess 2012-05-16
  • 打赏
  • 举报
回复
额,初学java,不会这么冷淡吧,技术青年们?

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧