C语言——数组知识(下)

本文详细介绍了二维数组的概念、创建方法(包括日常、按行和省略行初始化)、下标使用、输出与输入以及内存中的储存结构。通过实例展示了如何通过双重循环操作二维数组元素。
摘要由CSDN通过智能技术生成

一.前言

     嗨嗨嗨,大家好!我们又见面了。上次我们分享了关于一维数组的知识这次我们分享二维数组的知识,废话不多说,让我们开始今天的分享吧。

二.正文

1.二维数组

1.1二维数组的概念

       前面学习的数组被称为一维数组,数组的元素都是内置类型的,如果我们把一维数组作为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组被称为三维数组,二维数组以上的数组被统称为多维数组。

1.2二维数组的创建

    二维数组的创建其实和一维数组差不多,只不过多了一个行与列的差别而已,这到了本文后面分享二维数组的储存有介绍。

     如一维数组一样type是数组类型。

     arr为数组的命名,有意义即可。

      常量值1是表示数组的行数,常量值2表示数组的列数(或者可以说是一行中有几个数组元素)。

1.3二维数组的初始化

(i)日常数组初始化

话不多说直接上代码:

(ii)按照行初始化

        二维数组还可以按照行初始化,意思就是可以指定每一行的数组元素大小与个数,公主王子亲看vcr:

值得注意的是:数组在按照行初始化的时候,所在行的数组元素也必须使用{}括起来,如上面代码中的{ {1,2},{3,4},{5,6} }一样。

(iii)省略行初始化

         一维数组在初始化的时候可以这样初始化int arr[]={1,2,3,4,5,6,7,8,9,10};即使[ ]中不写数组大小,计算机也会自动为你匹配空间,数组大小自动为10.同理二维数组也是一样:

2.二维数组的使用

2.1二维数组的下标

     在一维数组的学习中我们已经了解到数组是有下标的,下标就相当于数组元素的编号。一维数组的下标是从0开始的,二维数组也不例外,同样二维数组的下标也是从0开始的。

例子:int arr[3][5]={1,2,3,4,5,  2,3,4,5,6,   3,4,5,6,7};数组元素6的下标是[1][4]。

那么如果我们想要引用数组元素6,该如何实现呢?我们可以这样写arr[1][4]。

2.2二维数组的输出

整个二维数组的输出需要借助于双重循环,废话不多数,公主王子们请看VCR:

       一些小伙伴可能对双重循环有点疑惑,双重循环分为外循环和内循环。当内循环循环完一圈后,外循环一次,然后再进入内循环循环完一圈,再到外循环依次往复,直到外循环循环完一圈。

        就比如上面图中代码所示,i=0;进入内循环,内循环循环完一圈,j依次从0加到5退出内循环进入到外循环中此时数组的第一行已经打印完成。然后i++,i从0加到1,再进入内循环,j又依次从0加到5退出内循环进入到外循环,此时数组已经完成第二行的打印~同理最后三行(0 1 2)数组都打印完成。

2.3二维数组的输入

    二维数组的输入也是需要借助双重循环的,公主王子们请看vcr:

3.二维数组在内存中的储存

我们可以如同在探究一维数组在内存中的储存的操作一样,先将各个数组元素的地址打印出来观看有什么规律。

从输出的结果来看,每一行内部的元素都是相邻的,地址之间相差四个字节,跨行位置处的两个元素(如arr[0][4]和arr[1][0])之间也是差4个字节,所以二维数组中的每个元素都是连续存放的。

如下图所示:

二维数组的每一行在内存中连续存放(咳咳我知道我画的有点丑,大家凑合着看吧

三.总结

知识分享到这就结束楼,感谢大家的观看。公主王子们我们下期再见喽,拜拜~

  • 35
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值