C语言——(二维数组)

一.二维数组的概念

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

二.二维数组的创建

如何创建二维数组,如下

1.type arr_name[常量值1][常量值2];

例子:

  1. int 表示数组中的每个元素为整型

  2. arr1表示为数组名字,名字可以根据实际情况起,有意义即可

3.[3][5] ,表示有3行5列,每一行有5个元素

三.二维数组的初始化

1.不完全初始化

1.arr1第一行元素为1和2,其他元素默认为0 , arr2第一行元素为0,其他元素默认为0

2.完全初始化

3行5列,每一行存放满5个元素

3.按照行初始化

二维数组可以按照行进行初始化,但是必须加上{ } ,{ }指定了该行存放的元素,{1,2}第一行,{3,4}第二行,{5,6}第三行,其余的默认为0

4.初始化可以省略行,但不能省略列

为什么二维数组的行可以省略,但列不能省略,因为[5]规定了这一行只能存放5个元素,那么如果我这一行放不满元素,我就只需要一行就可以。如,arr5我只放了{1,2,3}这3个元素,那么列为5,所以我第一行能放5个元素,但只放了3个,那么只需要1行。arr6为7个元素,我第一行放不完,就会接着存放到第二行,arr7花括号{ },就指定了存放的行数。

四.二维数组的使用

二维数组与一维数组的元素访问一样,都是使用下标来进行访问。

二维数组的下标与一维数组的下标一样,都是0下标开始的。二维数组分为行与列,行的下标开始为0,列的下标开始为0,只要我们知道了二维数组的行与列的下标,就可以访问到该二维数组下标的元素。

如下,我想访问第二行的元素5,那么我们知道行与列的下标开始为0,那么行就是0,1,2这三行,列就是0,1,2,3,4这五行,访问第二行第3列,就是arr[1][3]也就是元素5。

五.二维数组的输入与输出

第一个for为产生行,那么我们下标从0开始为0,1,2所以i<3,第二个for为产生列,列的下标为0开始0,1,2,3,4所以,j<5 。

六.二维数组的存储

二维数组的存放我们可以看到,因为是int整型所以他们之间是相差4个字节,所以二维数组的每个元素是连续存放的

结尾:

感谢大家的阅读!!!

相关推荐
CoovallyAIHub19 小时前
港大&字节重磅发布DanceGRPO:突破视觉生成RLHF瓶颈,多项任务性能提升超180%!
深度学习·算法·计算机视觉
CoovallyAIHub20 小时前
英伟达ViPE重磅发布!解决3D感知难题,SLAM+深度学习完美融合(附带数据集下载地址)
深度学习·算法·计算机视觉
聚客AI2 天前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
大怪v2 天前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工2 天前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
骑自行车的码农2 天前
【React用到的一些算法】游标和栈
算法·react.js
博笙困了2 天前
AcWing学习——双指针算法
c++·算法
moonlifesudo2 天前
322:零钱兑换(三种方法)
算法
NAGNIP3 天前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队3 天前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法