这是一个有趣的代码,经过测试我无法弄清楚为什么会发生这种情况,除了打印过程中的潜在错误。也许有人在这里可以启发我。
我正在寻找一个代表内存分配的简单数组。
在这个例子中,数组将是一个10位数组(将10作为参数传递)。由于没有分配内存,我将使10为负10。下面的代码只是将int数组初始化为长度10.后面我将0值设置为-10,最后一个值设置为-10。
this.mem = new int [memsize];
int memory = -1 * memsize;
this.mem [0] = memory;
this.mem [mem.length-1] = memory;
for (int x= 0; x < mem.length - 1 ; x++){
System.out.print(mem[x] + " , " );
}
这对我来说非常有意义,但它打印出以下结果。
-10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1
我唯一的提示是system.out.print期间的潜在错误,因为它在打印时从未到达逗号。但是,没有错误被抛出,我将值设置为负10 ...不是1.任何人都知道为什么会发生这种情况?我再次运行它并且无法理解值
-10 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2
请帮助
答案 0 :(得分:2)
您复制的代码无法生成您指定的输出。她是一段有效的代码:
int memsize = 10;
int[] mem = new int [memsize];
int memory = -memsize;
mem [0] = memory;
mem [mem.length-1] = memory;
for (int x= 0; x <= mem.length - 1 ; x++){
if (x != 0) {
System.out.print(" , ");
}
System.out.print(mem[x]);
}