我尝试从二维数组传递一行时出错

时间:2013-04-01 03:32:16

标签: java arrays multidimensional-array

在尝试传递一个二维数组的行时,我在函数调用上遇到错误:

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

1 个答案:

答案 0 :(得分:3)

这是因为数据是数组的数组,并且[]用作传入类型声明的一部分,而不是数组的根节点,在该上下文中它们用作索引的访问器进入它。

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

function(arr[0]); // CORRECT STATEMENT