栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

零基础java自学流程-认识Java基础语法15

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

零基础java自学流程-认识Java基础语法15

二维数组的定义

二维数组定义的一般形式为:

类型说明符 数组名[ 常量表达式][ 常量表达式];

比如:

int a[3][4];

表示定义有3行4列共计12个元素的3×4数组。12个元素命名为[0][0],[0]的[1],一个[0][2],一个[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]。

与一维数组一样,行序号和列序号的下标从0开始。元素A [I][j]表示第I +1行和第j +1列中的元素。int a[m][n]最大范围内的元素是一个[m-1][n-1]。因此,当引用数组元素时,你应该注意下标值应该在定义的数组大小之内。

此外,与一维数组一样,定义数组时使用的数组名[常量表达式][常量表达式]与引用数组元素时使用的数组名[下标][下标]之间也有区别。第一种方法是定义数组、数组的维数以及每个维的大小。后者只是一个元素的索引,就像一个坐标,对应于一个特定的元素。在C语言中,二维数组就是这样定义的,可以将二维数组看作是一种特殊的一维数组,即其元素为一维数组。例如,“int a[3][4];”你可以把它想象成有三个元素,每个元素都是长度为4的一维数组。[0]、[2]和[3]分别是三个一维数组的名称。让我们来看看情况是否如此:

# include 
int main(void)
{
    int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    printf("%dn", sizeof(a[0]));
    return 0;
}

的输出是:

16

您可以看到[0]确实是第一个一维数组的名称,等等。

二维数组的元素顺序是按行存储的,即第一行的元素按顺序存储在内存中,第二行的元素按顺序存储。

二维数组的初始化

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

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};

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

二维数组如何输出

二维数组有行和列,那么如何输出里面的元素呢?在讲述一维数组的时候说过,“数组的元素只能一个一个输出”,二维数组也不例外。在一维数组中是用一个 for 循环进行输出,而二维数组元素的输出要使用两个 for 循环嵌套。

# include 
int main(void)
{
    int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    int i;  //行循环变量
    int j;  //列循环变量
    for (i=0; i<3; ++i)
    {
        for (j=0; j<4; ++j)
        {
            printf("%-2dx20", a[i][j]);
        }
        printf("n");
    }
    return 0;
}

 输出结果是:
1  2  3  4
5  6  7  8
9  10 11 12

提示:“printf("%-2dx20",a[i][j]);”中的“%-2d”,其中“-”表示左对齐,如果不写“-”则默认表示右对齐;“2”表示这个元素输出时占两个空格的空间,所以连同后面的 x20 则每个元素输出时都占三个空格的空间。


   想要系统学习JAVA推荐JAVA300集

Java300集零基础适合初学者视频教程https://www.bilibili.com/video/BV1oy4y1H7R6?spm_id_from=333.999.0.0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号