2013-04-01 93 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

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