1

在尝试传递一行二维数组时,函数调用出现错误:

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);
        }
    }
}
4

1 回答 1

3

这是因为数据是数组的数组,并且 [] 用作传入类型声明的一部分,而不是数组的根节点的一部分,在这种情况下,它们被用作对其进行索引的访问器。

char arr[][]是 char 数组的声明。要访问其中一个内部数组,您只需索引到其中一个基本数组,您返回的值将是内部数组。

function(arr[0]); // CORRECT STATEMENT
于 2013-04-01T03:33:18.523 回答