二维数组的长度
2023-05-19 17:15:05 阅读(266)
二维数组初始化时,为什么不能省略第二维的长度?
如果对全部元素都付出值,则定义数组时,可以不指定第一位的长度,但第二位的长度不能少。例如: int a【3】【4】={1,2,3,4,5,6,7,8,9,10,11,12}; 可以写为: int a【】【4】={1,2,3,4,5,6,7,8,9,10,11,12}; 系统会根据数据总个数分配存储空间,一共12个数据,每行四列,当然可确定为3行,但不能写成: int a【】【】={1,2,3,4,5,6,7,8,9,10,11,12}; 因为第二个维数省略时,可以理解为多种形式,系统无法分配行列,空间会发生混淆,所以只能省略第一维数。
二维数组合法定义?
二维数组定义的一般形式是: 类型说明符 数组名[常量表达式1][常量表达式2] 其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如: int a[3][4]; 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即: a[0][0], a[0][1], a[0][2], a[0][3] a[1][0], a[1][1], a[1][2], a[1][3] a[2][0], a[2][1], a[2][2], a[2][3] 二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。 在C语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。
C#中,关于一个二维数组是否有长度这个概念,也就是length,如果有的话,一个二维数组的长度该怎样求呢?
数组的长度从来都是指某一维度的长度,在哪个语言里都是。 你可以说二维数组第一维度的长度、第二维度的长度乘积是二维数组的元素个数,但没有“二维数组的长度”这个概念。 Array 有 GetLength(int) 这个方法,可以得到指定维度的长度。
c语言数组定义和赋值?
二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。 我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如:int a[3][4];定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即:a[0][0], a[0][1], a[0][2], a[0][3] a[1][0], a[1][1], a[1][2], a[1][3] a[2][0], a[2][1], a[2][2], a[2][3] 如果想表示第 2 行第 1 列的元素,应该写作 a[2][1]。 也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。
未经允许不得转载,或转载时需注明出处