c#中如何定义二维数组?

这样定义不行吗?byte[][] blob=new byte[5][5];
谢谢!
如果不行的话,为什么参数中写 byte[][] blob,就行呢?

这样:

//二维数组,先定义了一维: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();

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-16

例:定义一个二维数组的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;

本回答被网友采纳
第2个回答  推荐于2017-11-26
snake64回答的不对,

应该是:
byte[,] blob =new byte[5,5];

这个是声明一个交错数组,不是二维数组,和c/c++不同,
byte[][] blob=new byte[5][5];

而这种声明压根不对(怎么可能把一个交错数组赋值给一个二维数组?):
byte[,] blob =new byte[5][5];本回答被提问者采纳
第3个回答  2019-03-18
这个要与年份相关联的吧,有闰年的存在,二月不是个定数……
int
year
=
1999;//年份变量,可以动态获取一个,只要赋给这个变量就可以了
int[][]
date
=
new
int[12][];//二维数组
for(int
i
=
0;i<
date.length;i++)
{

int
day
=
31;//每月天数
switch(i+1){

case
4:

day
=
30;
break;
case
6:
day
=
30;
break;
case
9:

day
=
30;
break;

case
11:

day
=
30;
break;

case
2:

day
=
28;

if(year
%
4
==
0)//判断闰年
{

if(i
%
100
!=
0
||
i%400
==0)

{

day
=
29;

}
}

break;

default:
break;

}

date[i]
=
new
int[day];//日期数组
for(int
j=0;j<day;j++)

{

date[i][j]
=
j+1;//为日期赋值

}
}

使用的时候:
for(int
i
=
0;i<
date.length;i++)//遍历操作
{

for(int
j=0;j<date[i].length;j++){

具体操作;
}
}
也可以根据月份获得日期数组,例如,获得二月:
int[]
month_2
=
date[1];
第4个回答  2019-06-11
int[,]
array_a
=
new
int[2,
3]
{
{
11, 22
33
},
{
44,55,66}
};
这是个2行3列的二维数组
相似回答