在C#中,int[,]和int[][]是同一种类型吗,都是表示二维数组吗,请看补充,谢谢:

2024-12-28 23:33:37
推荐回答(6个)
回答1:

不一样,int[,]是规则的二维数组,但每行的列数是固定的,呈现一个矩形。
int[][]是不规则数组,每行的列数是可变的。
例如可以是这样:
1
1 2
1 2 3
i

回答2:

二维数组知道是什么吧?int[][]是一维数组的一维数组,意思就是一维数组里面又有一个一维数组,举个例子你应该就明白了
int[] array1 = { 1,2,3 };
int[] array2 = { 4,5,6 };
int[][] arrayList = { array1,array2 };
再知道了不?array1 和array2是存放int的数组,arrayList就是一个存放int数组的数组
int[][]就像一个大柜子一样,里面再放了几个小柜子
而二维数组就像一个书架

楼主学过C?那C#就很容易上手了,其实理解了两者也差不多,只是C存的是指针

回答3:

“安城百合子”的正解!
用int[,]定义的为规则二维数组,同样,三位数组是int[,,]
用int[][]声明的为锯齿数组,其每一行都可以有不同的大小

回答4:

int[][]貌似是叫交错数组,可以用来存放一些长度不一的数据

回答5:

/*
1. C++中 只有 new 和 new[] 两种, 没有new [][]
new 和 delete是一对
new[] 和 delete[] 是一对 申请和释放数组
2. 请看:
3. 二维数组 int a[3][4] 可以看做一个含有三个元素的一维数组, 每个元素都是int [4]类型。 C++中数组和指针看做一种派生数据类型更容易理解
4. 自己试着改一下自己的程序。如果改不好,hi我. 我用C写过矩阵乘法:
5.下面是一个简单的C++申请和释放二维数组的例子
*/
#include
using namespace std;

int main()
{
int **iArr = NULL;
int cols;
int lines;
int i, j;

cin >> cols >> lines;
iArr = new int * [lines]; // 申请一个具有lines个元素的数组, 每个元素都是int*类型 这样得到了lines个指针每个指向二维数组的一行
/*
这样写
try {
iArr = new int * [lines];
}
catch (bad_alloc) {
cerr << "new [] operator failed\n";
exit(EXIT_FAILURE);
}
更好
*/
for (i = 0; i < lines; i++) {
iArr[i] = new int [cols];
}

for (i =0; i < lines; i++) {
for (j = 0; j < cols; j++) {
iArr[i][j] = i * j;
}
}

for (i =0; i < lines; i++) {
for (j = 0; j < cols; j++) {
cout << iArr[i][j] << " ";
}
cout << endl;
}

for (i =0; i < lines; i++) {
delete [] iArr[i];
iArr[i] = NULL;
}
delete []iArr;
iArr = NULL;
return 0;
}

回答6:

不一样的,建议你买本C#的入门教程先了解一下!