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

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

最佳答案

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

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

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

关于java - 当我尝试从二维数组传递一行时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15737272/

相关文章:

arrays - 将一个对象的多个属性收集到一个数组中

arrays - powershell 返回 1 个单个元素而不是数组

c - 如何在 C 中声明和初始化 4 维数组

java - 如何将字符串转换为固定 int 二维数组(特殊情况)?

java - 链接方法/小修正 - Java

java - 辅助注入(inject)根据运行时检查注入(inject)不同的依赖项

java - 将 GWT 库编译为 JavaScript 库

java - 将字符数组转换为字符数组列表

java - 性能提示问题

java - 此代码中 "this"的含义?