这样:
//二维数组,先定义了一维:2
int[][] a = new int[2][];
//再定义第二维:3
a[0] = new int[3]{1,2,3};
a[1] = new int[3]{4,5,6};
byte[,] blob =new byte[5,5];这个是声明一个交错数组,不是二维数组,和c/c++不同,
byte[][] blob=new byte[5][5];
这种声明不可能把一个交错数组赋值给一个二维数组:
byte[,] blob =new byte[5][5];
注意事项
二维数组是按照你定义的类型的一组数,比如int [2,3]那就是说一个两行三列,每一个元素都是一个整型数的数组,但是交错数组int[2][],意思是这个数组有两个元素,每一个元素都是一个整型的数组,但是长度可以不一样,比如int [][] arr= new int[2][];因为每个数组的元素不一样,所以后面的[]不能填值。
int [0][]=new int[10];
int [1][]=new int[8];
例子(访问交错数组):
int[][] arr = new int[3][]{
new int[2]{1,2},
new int[3]{3,4,5},
new int[4]{6,7,8,9}
};
foreach (var item in arr)//最外层得到每个数组
{
foreach (var i in item)//内层是去每个数组中访问元素
{
Console.Write(i);
}
Console.WriteLine();
}
例:定义一个二维数组的BB类型
#include<iostream.h>
typedef char BB[10][50];
void main()
{
BB a;
for (int i=0;i<10;i++)
{
for (int j=0;j<50;j++)
{
a[i][j]='b';
cout<<a[i][j];
}
cout<<endl;
}
}
扩展资料
C++动态二位数组:
以整形为例,row为行数,col为列数
int **data;//存储二维数组的指针(指向指针的指针。date=x[0][0]的地址。这样标会更好。因为sizeof(date)结果为4不可能存下二维数组)
//以下实现如何申请内存data = new int *[row];for (int k = 0; k < row; k++){data[k] = new int[col];}
//赋值跟普通二维数组一样 例如
data[0][0] = 5; //将二维数组1行1列(C++中称为0行0列)赋值为5//删除内存for (int i = 0 ; i < row; ++i){delete [ ] data[i]; //此处的[]不可省略}delete [ ] data;
本回答被网友采纳