2013-04-01 128 views
1

传递一个排在试图传递一个2-d阵列的行,我得到了函数调用的错误:错误,我尝试从2-d阵列

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

回答

3

这是因为数据是数组的数组,并[]被用作一个输入类型的声明的一部分,而不是在阵列的根节点的,在这种情况下它们被用作访问器来索引进去。

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

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

删除我的答案赞成你的更好的答案:1 +的投票 –

+0

你能简化你的答案。我不明白,除了我需要传递像'function(arr [0])' –

+0

我更新了我的答案,希望它更清楚? –