重生之我在21世纪学C++—二维数组

1、二维数组的概念

如果我们把一维数组做为数组的元素,这时候由一维数组组成的就叫二维数组 。二维数组作为数组元素的数组被称为三维数组二维数组以上的数组 统称为多维数组

2、二维数组的创建

语法:type arr_name[ 常量值1 ][ 常量值2 ];

对上面一张图片进行解释:第一个5代表数组有5行;第二个5代表每行有5个元素,即整个二维数组一共有5列;int 表示数组的每个元素都是整型;arr 是数组名,数组名可以根据自己的需要来指定。

3、二维数组的初始化

在创建变量或者数组的时候,给定一些初始值,称为初始化。像一维数组一样,二维数组也是使用大括号初始化的。

//不完全初始化,剩余元素默认初始化为0

int arr1[3][5] = { 1 , 2 };

int arr2[3][5] = { 0 };

//完全初始化

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

//按行初始化

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

注意:如果数组初始化了,数组在指定大小的时候可以省略行,而不能省略列。因为省略列的话,编译器不知道一行放几个元素就会出现问题;而省略行,编译器可以根据填充的行数,来默认指定行数,不会出现问题。

4、二维数组的下标

⼆维数组元素的访问是通过下标实现的,二维数组是有行和列,只要锁定了行和列就能锁定唯一的数组中的一个元素。

C++规定,二维数组的行是从 0 开始的,列也是从 0 开始的,如下所示:

5、二维数组元素的遍历和打印

外层循环,循环变量为 i ,负责遍历二维数组的行;内层循环,循环变量为 j ,负责遍历每行中的每个元素,即遍历二维数组的列。然后通过下标索引依次打印即可。每行打印完,打印一个换行,使结果更清晰,(二维数组中的元素的存储实际上是连续的)。

6、使用memset设置二维数组内容

memset 是用来设置内存 的,它可以将内存中的值以字节为单位设置成想要的内容。

对二维整型数组使用memset:

对二维字符型数组使用memset:

memset 在二维数组中的用法同一维数组,同样也需要注意避免给整型赋非 0 值

相关推荐
mrcrack10 小时前
洛谷 B3656 【模板】双端队列 1 方案1+离线处理+一维数组+偏移量 方案2+stl list
c++·list
lingzhilab10 小时前
零知IDE——基于STMF103RBT6结合PAJ7620U2手势控制192位WS2812 RGB立方体矩阵
c++·stm32·矩阵
go_bai10 小时前
生产消费模型-简洁线程池
linux·c++·笔记
mingren_131410 小时前
c++和qml交互
c++·qt·交互
cn_mengbei10 小时前
鸿蒙PC上Qt原生应用开发:从零搭建开发环境到部署实战,附HarmonyOS SDK配置与避坑指南(C++实现)
c++·qt·harmonyos
脏脏a10 小时前
手撕 vector:从 0 到 1 模拟实现 STL 容器
开发语言·c++·vector
郝学胜-神的一滴11 小时前
Linux 读写锁深度解析:原理、应用与性能优化
linux·服务器·c++·程序人生·性能优化
闻缺陷则喜何志丹11 小时前
【图论 DFS 换根法】3772. 子图的最大得分|2235
c++·算法·深度优先·力扣·图论·换根法
开开心心就好11 小时前
音频格式互转工具,支持Mp3ApeWavFlac互转
java·网络·c++·windows·qt·电脑·excel
byxdaz20 小时前
C++内存序
c++