1

2 次元配列の行を渡そうとすると、関数呼び出しでエラーが発生します。

Tester.java:10: illegal start of expression
            function(arr[0][]);
                            ^
1 error

2 次元配列から 1 つの行を渡すことはできませんか?

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 の配列の配列の宣言です。内部配列の 1 つにアクセスするには、基本配列の 1 つにインデックスを付けるだけで、返される値が内部配列になります。

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