当前位置:编程学习 > JAVA >>

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

char exp=new char[16];
exp="fbc##de#g##f###".toCharArray();
exp里面是15个,16个则是越界了。。 --------------------编程问答-------------------- 额,初学java,不会这么冷淡吧,技术青年们? --------------------编程问答-------------------- 是0到15,16当然越界了 --------------------编程问答-------------------- 分析一下你这两行代码的执行过程吧:
1)定义一个长度为16的char数组,然后通过exp变量引用
2)将“********”调用tocahrarray()放回返回一个新的char数组,并将新的数组引用赋值给exp
所以exp指向的不是同一个数组,无论“******”有几个字符都不会越界。因为是两个char数组 --------------------编程问答-------------------- 可是当exp="afbc##de#g##f###".toCharArray();这里面仅仅添加一个a使得字符串为16时,程序错误,提示数组越界。 --------------------编程问答-------------------- 你第一行写错了吧?应该char[]不是char --------------------编程问答-------------------- 验证一下,第一行写错了。
char[] exp=new char[16];
.... --------------------编程问答-------------------- "fbc##de#g##f###".toCharArray()  这是一个数组
exp 又是一个数组。
补充:Java ,  Eclipse
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,