我正在读书,我发现了一些我不太懂的东西。
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
传递的是什么?
答案 0 :(得分:3)
char[]
是items
的类型。 items
仍然只是一个普通变量,您只需使用其名称即可引用它。 (实质上,在声明数组类型的变量时,或者在索引变量时使用[]
- 例如items[0]
或items[items.length - 1]
。)
答案 1 :(得分:0)
你在qsort(char items [])//带[]括号
的项目中传递一个数组
qsort(char items[])
是qsort
方法签名,这意味着qsort
会接受array
或char
,即它会接受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
。