在试图传递一行二维数组时,我在函数调用上得到一个错误:
Tester.java:10: illegal start of expression
function(arr[0][]);
^
1 error
我们不能从二维数组传递单行吗?
class Tester {
public static void main(String args[]) {
char arr[][] = new char[3][3];
arr[0][0] = 'x';
arr[0][1] = 'x';
arr[0][2] = 'o';
arr[2][0] = 'x';
arr[2][1] = 'o';
arr[2][2] = 'x';
function(arr[0][]); // ERROR STATEMENT
}
public void function(char arr[]) {
for(char s : arr) {
System.out.println(s);
}
}
}
这是因为数据是数组的数组,并且[]被用作传入类型声明的一部分,而不是数组的根节点,在该上下文中,它们被用作索引到它的访问器。
char arr[][]
是一个char类型数组的数组声明。要访问其中一个内部数组,只需索引到其中一个基数组,返回的值将是内部数组。
function(arr[0]); // CORRECT STATEMENT