在尝试传递一个二维数组的行时,我在函数调用上遇到错误:
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);
}
}
}
答案 0 :(得分:3)
这是因为数据是数组的数组,并且[]用作传入类型声明的一部分,而不是数组的根节点,在该上下文中它们用作索引的访问器进入它。
char arr[][]
是char数组数组的声明。要访问其中一个内部数组,只需索引到其中一个基本数组,然后返回的值就是内部数组。
function(arr[0]); // CORRECT STATEMENT