C语言二维数组

一、⼆维数组的创建

1.二维数组的概念:

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

2.二维数组的创建:

    格式为:类型 数组名 [常量值][常量值],比如:

int arr[3][4];

    其中,类型可以限制二维数组中元素的数据类型,[]中的常量值分别代表数组有多少行,多少列,比如:

int arr[3][4];
//int表示二维数组中存放的元素是整型
//3代表二维数组有3行,4代表二维数组有4列
//arr是二维数组的名称

二、⼆维数组的初始化

1.不完全初始化:

    对只初始化二维数组中的部分内容,剩下的元素自动初始化为0,例如:

int arr1[3][5] = {1,2};
//将第一行的前两个元素分别初始化为1,2
//剩余的元素初始化为0
int arr2[3][5] = {0};
//将所有元素初始化为0

2.完全初始化:

    直接对二维数组进行完全初始化,例如:

int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};

3.按行对二维数组进行初始化:

    按行对二维数组初始化时,可以将每行单独初始化,用{}括起来,此时可以实现不将每一行初始化完全,也可以初始化下一行,例如:

int arr4[3][5] = {{1,2},{3,4},{5,6}};
//只将每行的前两个元素初始化,其它的元素还是为0

在这里插入图片描述

4.注意:

    二维数组初始化时,可以省略行,但是不能省略列,例如:

int arr5[][5] = {1,2,3};
int arr6[][5] = {1,2,3,4,5,6,7};
int arr7[][5] = {{1,2}, {3,4}, {5,6}};

在这里插入图片描述

三、⼆维数组的使用

1.二维数组的下标:

    当我们想访问二维数组中的元素时,也需要使用下标,行和列的下标都是从0开始,比如:
在这里插入图片描述
如果我们想访问4这个元素,就要找到它们的行和列,在这里是1行1列,所以写成arr[1][1],如:
在这里插入图片描述

2.二维数组的输入以及输出:

(1)对二维数组进行输出,比如有如下数组:

int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};

    我们如何将二维数组arr的元素完整打印出来呢?我们之前学习了如何用循环打印一维数组,我们说二维数组是将一维数组作为元素,所以这里我们使用两个循环就可以将二维数组打印出来,比如:
在这里插入图片描述
(2)对二维数组进行输入:
与输出十分类似,只需要将printf改为scanf即可,例如:
在这里插入图片描述

四、⼆维数组在内存中的存储

    像⼀维数组⼀样,我们如果想研究⼆维数组在内存中的存储⽅式,我们也是可以打印出数组所有元素的地址的,如图:
在这里插入图片描述
    可以看出在内存中二维数组中的每个元素都是挨着的,所以⼆维数组中的每个元素都是连续存放,了解了二维数组在内存中的存储,对我们以后学习指针有很大帮组

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值