数组

时间:2015-07-31 15:40:25

标签: java arrays

我正在读书,我发现了一些我不太懂的东西。

static void qsort(char items[]) {
    qs(items, 0, items.length -1); }

因此,在此代码中,您将数组传递给方法以启动另一个方法。我没有真正得到的是:你在qsort(char items[]) //Items with [] brackets中传递一个数组,但是你只将items //Without [] brackets传递给了qs方法。

我看过这本书,但从未提及过这一点。如果我在这里传递数组,直觉上我认为它看起来像qs(items[], 0, items.length -1),但这会产生错误。

那么我到底以items传递的是什么?

2 个答案:

答案 0 :(得分:3)

char[]items的类型。 items仍然只是一个普通变量,您只需使用其名称即可引用它。 (实质上,在声明数组类型的变量时,或者在索引变量时使用[] - 例如items[0]items[items.length - 1]。)

答案 1 :(得分:0)

  

你在qsort(char items [])//带[]括号

的项目中传递一个数组

qsort(char items[])qsort方法签名,这意味着qsort会接受arraychar,即它会接受char[]作为参数。

  

但你只将//没有[]括号的项目传递给qs方法。

您在此处调用qs方法,例如qs(items, 0, items.length -1),因此您在此处声明的char[]变量为items,因此您传递它,因为它是{ {1}}。

  

char[],但这会产生错误。

qs(items[], 0, items.length -1)方法接受qs。此处char[]items而非char[]。另请注意,items[]char items[]类似,只是写作问题,两者都是合法的,但您可以选择坚持一个&不要混淆。因此,作为传递char[] items变量的问题,您可以传递char[]而不是items