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

这样定义不行吗?byte[][]blob=newbyte[5][5];谢谢!如果不行的话,为什么参数中写byte[][]blob,就行呢?... 这样定义不行吗?byte[][] blob=new byte[5][5];
谢谢!
如果不行的话,为什么参数中写 byte[][] blob,就行呢?
展开
 我来答
大野瘦子
高粉答主

2019-10-24 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:31.9万
展开全部

这样:

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

}

velocity_2005
高粉答主

2019-10-16 · 关注我不会让你失望
知道小有建树答主
回答量:1785
采纳率:100%
帮助的人:117万
展开全部

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc91b32
推荐于2017-11-26 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
snake64回答的不对,

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

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

而这种声明压根不对(怎么可能把一个交错数组赋值给一个二维数组?):
byte[,] blob =new byte[5][5];
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戊婧栋合乐
2019-03-18 · TA获得超过3788个赞
知道大有可为答主
回答量:3112
采纳率:33%
帮助的人:206万
展开全部
这个要与年份相关联的吧,有闰年的存在,二月不是个定数……
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];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨欣禚思菱
2019-06-11 · TA获得超过3921个赞
知道大有可为答主
回答量:3133
采纳率:31%
帮助的人:233万
展开全部
int[,]
array_a
=
new
int[2,
3]
{
{
11, 22
33
},
{
44,55,66}
};
这是个2行3列的二维数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式