java二维数组

二维数组定义:

初始赋值值:

例:一个二维数组,有二个1维数组组成,每一个一维数组有3个元素

int[][] a = { {1,2,3},

{4,5,6}

            } ;

动态二维数组声明:

例:一个二维数组,有二个1维数组组成,每一个一维数组有3个元素

int[][] a = new int[2][3] ;

二维数组

二维数组,每个元素的长度为t个字节,设为A的第一个元素,即二维数组的行下标从p到m,列下标从q到n,按“行优先顺序”存储时则元素的地址计算为:

按“列优先顺序”存储时,地址计算为:

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节

二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵,对角矩阵:n阶方阵的所有非零元素都集中在主对角线上.

注意:
|
二维数组中第一维的大小可以省略,,但是第二维的大小不可以省略。

定义一个二维数组,这个数组是由3个一维数组组成,每个一维数组的长度是4;
也就是说,上面这个二维数组存储了12个数据。

与一维数组一样,行序号和列序号的下标都是从 0 开始的。元素 a[i][j] 表示第 i+1 行、第 j+1 列的元素。数组 int a[m][n] 最大范围处的元素是 a[m–1][n–1]。所以在引用数组元素时应该注意,下标值应在定义的数组大小的范围内。

二维数组的初始化:

二维数组的初始化
可以用下面的方法对二维数组进行初始化。

  1. 分行给二维数组赋初值,比如上面程序的赋值方法:
    int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    这种赋初值的方法比较直观,将第一个花括号内的数据赋给第一行的元素、第二个花括号内的数据赋给第二行的元素……即每行看作一个元素,按行赋初值。

  2. 也可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。比如:
    int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
    效果与第 1 种是一样的。但第1种方法更好,一行对一行,界限清楚。第 2 种方法如果数据多,写成一大片,容易遗漏,也不易检查。

  3. 也可以只对部分元素赋初值。比如:
    int a[3][4] = {{1, 2}, {5}, {9}};
    它的作用是对第一行的前两个元素赋值、第二行和第三行的第一个元素赋值。其余元素自动为 0。初始化后数组各元素为:

  4. 如果在定义数组时就对全部元素赋初值,即完全初始化,则第一维的长度可以不指定,但第二维的长度不能省。比如:
    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};
    系统会根据数据总数和第二维的长度算出第一维的长度。但这种省略的写法几乎不用,因为可读性差。

  5. int a[3][4]={0};

二维数组“清零”,里面每一个元素都是零。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值