Arrays 在构造函数中创建数组与在main中创建数组的区别
如果我有一个名为game的类和一个private:char board[3][3],为什么我不能用下面的方法初始化数组Arrays 在构造函数中创建数组与在main中创建数组的区别,arrays,constructor,Arrays,Constructor,如果我有一个名为game的类和一个private:char board[3][3],为什么我不能用下面的方法初始化数组 board[3][3]={'a','a','a','a','a','a','a','a'} 大体上,我可以使用上面的方法启动数组,但不能在我的类中启动 for (int i=0;i<3;i++) { for (int j=0; j<3; j++) { board[i][j]='a'; } } for(int i=0;i在ba
board[3][3]={'a','a','a','a','a','a','a','a'}
大体上,我可以使用上面的方法启动数组,但不能在我的类中启动
for (int i=0;i<3;i++)
{
for (int j=0; j<3; j++)
{
board[i][j]='a';
}
}
for(int i=0;i在basic语言中board[3][3]
表示您正在创建一个2D数组,即数组的数组,因为编译器没有2D数组这样的东西。编译器认为它在1D数组的每个索引上都有另一个数组。因此当您编写board[3][3]={'a','a','a','a','a','a','a'}a'}
给出错误,因为
1.您正在初始化数组,但char board[3][3]
只是一个引用,因此大小为3的内存不会被分配来分配它。您必须使用java中的new关键字char board[][]=new char[3][3]{{'a','a','a','a','a','a'}{'a'}{'a','a'};
2.您正在声明2D数组,但未提及列值,因此,如果您将写入board[]={'a','a','a','a','a','a','a'}
这也将是一个错误,因此要分离每一行和列值,请在{'a','a','a','a'}
即board[]={'a','a','a'},{'a','a'},{'a'},{'a','a','a'}}