-3

假设 p 是一个具有 int 类型元素的二维数组。以下哪个陈述最能描述以下代码的效果?

int i = 0;

while ( i < p[ 0 ].length )
{
  p[ 0 ][ i ] = 0;
  i++;
} 

有人可以帮我把它翻译成简单的英语吗?我只知道循环会在什么时候继续进行,i < p[0].length但是什么是p[0]什么是什么p[0][i]

4

4 回答 4

4
"i" equals zero
"p" is an array of arrays
while i is smaller than the "first" array's size in p
    give 0 as value to i'th element of first array in p 
    increase i by 1
于 2012-12-23T19:43:04.317 回答
1

该变量p可能是一个int[][]- 一个整数数组。

p[0]是 的第一个元素p,并且具有类型int[][]运算符索引到数组中。a[n]从数组中获取索引 n 处的元素a。请注意,它使用基于 0 的索引,因此第一个元素的索引为 0(而不是您可能期望的 1)。

循环将所有元素设置p[0]为 value 0

请注意,这也可以更简洁地使用Arrays.fill. 以下代码与您发布的循环具有相同的效果:

Arrays.fill(p[0], 0);
于 2012-12-23T19:41:24.443 回答
0

这是一个循环,i随着数组的第一个数组的长度递增p,将i第 th 元素设置为0.

在 javap[0][i]中与p[i]第一个数组相同p

据推测,p被声明为int[][] p

于 2012-12-23T19:38:51.120 回答
0

p[0].length 指的是第二个指定维度的大小,就像如果有一个 n 维度的数组说 int a[][][][][][][][...n 次然后是 a。 length 指的是第一维,a[0].length 将指的是第二维的长度等。

p[0][i] 显然是指第一行,其列索引由 i 的当前值指定。

于 2012-12-23T19:41:46.783 回答