我是java的新手。我有个疑问。
class ArrTest{
public static void main(String args[])
{
int i = 0;
int[] a = {3,6};
a[i] = i = 9;
System.out.println(i + " " + a[0] + " " + a[1]); // 9 9 6
}
} 发布于 2011-07-28 22:12:34
这是适用伟大的Java评估规则的另一个很好的例子。
Java从左到右解析地址。a[0]的地址是a[i],然后是i的地址i,然后将9分配给i,然后将9分配给a[0]。
因为a[0]没有越界,所以IndexOutOfBoundsException永远不会被抛出。
误解是反对left-to-right-rule的a[9]
发布于 2011-07-28 22:18:42
它不应该。
ai =i=9(使i等于9) a也应该是9,因为你给它赋值9 (ai =i= 9),最初a是3,a1是6(初始值(int[] a= {3,6};)
你应该得到9 9 6.
如果你使用a2,那么它会给你一个IndexOutOfBoundsException。
https://stackoverflow.com/questions/6860357
复制相似问题