C# 里A[][]跟A[,]不一样吗 区别是啥

如题所述

不一样,前者为锯齿数组(也叫交错数组),后者是普通的二维数组,最大区别就是锯齿数组的每一行的元素个数(或者叫列数)是可以不一样的,锯齿数组也被叫做数组的数组。比如说


// 声明一个锯齿型数组,该数组有两个元素
int[][] myArray = new int[2][];
// 其中第一个元素是一个含有五个元素的数组
// 初始化myArray[0]
myArray[0] = new int[5] {1,3,5,7,9};
// 其中第二个元素是一个含有4个元素的数组
// 初始化myArray[1]
myArray[1] = new int[4] {0, 2, 4, 6};

//遍历的时候,除了象普通二维数组一样之外,也可以用foreach
foreach (int[] i in myArray)
{
  foreach (int j in i)
  {
    Console.WriteLine(j);
  }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-01

a[,]是多维数组

a[][]是锯齿数组

例子:

//多维数组
int[,] a = new int[2,2]
a[0,0] =1;
a[0,1] =2;
a[1,0] =3;
a[0,0]= 4;
//或者
int[,] a = { {1,2}, {3, 4}};
//-----------
// 锯齿数组
int[][] a = new int[2][];
a[0] = new int[2]{1,2};
a[1] = new int[3]{3,4,5};

本回答被网友采纳

C# 里A[][]跟A[,]不一样吗 区别是啥
不一样,前者为锯齿数组(也叫交错数组),后者是普通的二维数组,最大区别就是锯齿数组的每一行的元素个数(或者叫列数)是可以不一样的,锯齿数组也被叫做数组的数组。比如说 \/\/ 声明一个锯齿型数组,该数组有两个元素int[][] myArray = new int[2][];\/\/ 其中第一个元素是一个含有五个元...

...1、两个数组a[][]和a[,]有什么不同 2、C,java,C#中数组有什么不同...
1两个数组a[][]和a[,]有什么不同 他们的不同太多了,一个市二维的,一个是一维的 二维数组要用双重循环读取数据,一维的就只用一个下标就可以了读取了,他们的用途也不一样,二维的在二维数列方面好用,一维的基本就是一组数据的读取的时候好用 2 .C,java,C#中数组有什么,他们的读取方式基...

C#编程要区分大小写吗?大小写有什么样的区别?
编程要区分大小写的,至于大写与小写的区别嘛,a和A的字符码的码值是不一样的这就是区别

c#中变量与字段有什么区别
没区别。都是一段占用内存的数据而已。只是创建的地方不同而已,通常字段是在一个类中的一个属性,比如a.b 而类是一个抽象的,而b也是抽象的,变量就不同了就是具体到一个实体。可以说变量是一个类的实体化,而字段是一个类的一个部分。大概就是人类和小明的关系。变量是小明,人类的性别被称为...

c#中::和 .的区别?
c#中::和.区别为:性质不同、引用变量不同、前缀不同。一、性质不同 1、:::::是域作用符,是各种域性质的实体专用的。2、.:.是成员作用符,是对象专用的。二、引用变量不同 1、:::::的引用变量类型是外部变量。2、.:.的引用变量类型是局部变量。三、前缀不同 1、:::::的前缀可以不...

C#路径 里\\\\和\/有什么区别
一个是windows文件路径,一个是http协议的url路径 如:windows路径:D:\\KwDownload\\lyric url路径:http:\/\/zhidao.baidu.com\/question\/97709502.html

c#使用哪个函数作为主函数?
也就是说,如果你定义了 int[] a,a 并不表示一块 int 内存的首地址,而是指向一个对象,这个对象是“int 数组”类型的。而且 C# 还支持交错数组(数组的数组)。3, 不对。它可以使用 goto。不可贯穿指的是每个分支必须以 break 结束,不能执行完一个分支再继续执行下面的分支。4,不可以。

C#中,类名不一样,但类成员完全一样,可以相互转化吗?
如果两个类里不重写强制转换操作符(比如在A类里要写一个public static explicit A( B b ){ }方法,就可以实现B到A的显式转换,反之一样),肯定不能直接转的,但你既然说类成员完全一样,就可以利用反射技术来进行转换,写一个转换方法就可以通用了,以下是测试代码和结果:\/\/ 定义两个具有...

c#中如何定义二维数组?
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];...

c# 函数 调用效率问题
但通常无法感觉出来两者的差别。因为目前计算机的运算速度已经达到了非常快的地步,加上Windows程序相对DOS时代可以说是非常臃肿,相比而言压栈、弹栈这种操作所引起的时间占用简单不值一提。不过有没有差别还要看你程序是做什么用的。比如a.a1如果是用一些迭代算法做数学运算,需要持续重复调用的话,调用b3...

相似回答