c#中如何定义二维数组?
谢谢!
如果不行的话,为什么参数中写 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();
}
例:定义一个二维数组的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;
应该是:
byte[,] blob =new byte[5,5];
这个是声明一枝神个交错数组,不是二维数组,和c/c++不同,
byte[][] blob=new byte[5][5];
而这种声明压根不对(怎么可能把一个交错数组赋值给一个二维数组唤档?):
byte[,] blob =new byte[5][5];
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];
array_a
=
new
int[2,
3]
{
{
11, 22
33
},
{
44,55,66}
};
这是个2行3列派瞎谈的尘碰二维数组神缺