当前位置: 首页 > news >正文

C语言二维数组|把数组当成一栋楼,秒懂!

很多初学c语言的学完一维数组,看到int a[3][4]直接懵了。
别慌,今天带你把数组当成一栋楼,方便理解!


🏢 一、二维数组就是一栋楼

一维数组就像一层楼的走廊,房间一间挨一间:

房间0 房间1 房间2 房间3 [ ] [ ] [ ] [ ]

二维数组呢?就是一栋多层楼房

列0 列1 列2 列3 第0层 [0] [0] [0] [0] 第1层 [0] [0] [0] [0] 第2层 [0] [0] [0] [0]

声明一栋楼(3层,每层4个房间):

intbuilding[3][4];// 3层楼,每层4个房间
  • 第一个数字3→ 楼层数(行数)
  • 第二个数字4→ 每层房间数(列数)

🏠 二、房间号怎么叫?

想找人,得说几楼的几号房

building[楼层][房间号]

注意:楼层和房间号都从 0 开始!

  • building[0][0]→ 1楼1号房
  • building[2][3]→ 3楼4号房

代码示例

building[0][1]=100;// 1楼2号房住进数字100printf("%d",building[0][1]);// 输出 100

📦 三、楼房里都住着谁?(初始化)

方式1:一层一层入住(最清晰)

inta[3][4]={{1,2,3,4},// 第0层住户{5,6,7,8},// 第1层住户{9,10,11,12}// 第2层住户};

方式2:排成一队,按顺序入住

inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

跟方式1效果一样,先填满第0层,再填第1层……

方式3:部分入住,剩下的自动补0

inta[3][4]={{1},{5},{9}};

相当于:

1 0 0 0 5 0 0 0 9 0 0 0

方式4:房子数量可以省,但每层房间数不能省

inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};// 编译器自己算出是3层

🧠 四、楼房的真实结构(内存里啥样)

虽然图纸上是楼层,实际在内存里是连成一排的

第0层房间0,1,2,3 → 第1层房间0,1,2,3 → 第2层房间0,1,2,3

就像把每层楼的走廊拆开,首尾相连拼成一条大走廊。


🎮 五、完整演示:给整栋楼安排住户

#include<stdio.h>intmain(){intbuilding[3][4];// 3层4间的楼intfloor,room;// 1. 让用户输入每个房间的住户号printf("请输入12个住户号:\n");for(floor=0;floor<3;floor++){for(room=0;room<4;room++){scanf("%d",&building[floor][room]);}}// 2. 把3楼4号房改成VIPbuilding[2][3]=999;// 3. 打印整栋楼的住户表printf("当前住户表:\n");for(floor=0;floor<3;floor++){for(room=0;room<4;room++){printf("%d\t",building[floor][room]);}printf("\n");}return0;}

✨ 六、一句话总结

二维数组 = 一栋楼,行是楼层,列是房间号。
遍历就是从一楼到顶楼,每层挨个房间敲门

下次遇到arr[i][j],心里默念:第 i 层,第 j 号房,瞬间通透!


如果这篇笔记帮你搞懂了二维数组,记得点赞收藏~
还有哪里迷糊的,评论区留言,我用人话继续给你讲!

http://www.jsqmd.com/news/849952/

相关文章:

  • 2026年AI编程工具优缺点全解析:主流工具对比榜单
  • Vue 项目中 vis-network 点击节点不生效的问题排查:外层 transform 缩放导致坐标偏移
  • 避坑指南:Ubuntu 22.04安装Tesla显卡驱动时,为什么必须禁用nouveau和设置Above 4G?
  • 一道2厘米的伤口,照见了人间的双重标准
  • 同样是芯片,为什么有的板子CPU强、有的GPU猛、还有的专门带NPU?三者到底怎么分工?日常选型怎么避坑?
  • Rust 服务器列表公开(Query)功能说明
  • 2026年|毕业论文降AI率实操教程:知网/维普3步降至15%稳过AI检测 - 降AI实验室
  • Allegro铺铜皮别再一层层画了!用Copy to Layers功能5分钟搞定多层板电源地平面
  • 不只是模拟器:用Android-x86把你的旧笔记本变成安卓平板(附VirtWifi联网指南)
  • 新手别急着写代码,先把开发环境搞定:VSCode +高德地图开发者申请详细教程
  • 解决Cesium自定义天空盒的‘天旋地转’问题:preUpdate事件监听与姿态修正指南
  • Command line is too long.Shorten the command line via JAR manifest or via a classpath file and rerun
  • Tool Permission 与 Sandbox 安全流水线
  • 一个8B小模型从53%到99%?这护栏也太离谱了
  • 为什么你的5年经验简历不值钱?一招升维对标8年薪资
  • 市场主流零代码平台选型榜单
  • 使用svg图标
  • 别再只调参了!用CLIP+医学影像做Zero-shot分类,5分钟搞定你的第一个Demo
  • 期货合约乘数与最小变动价位:从 Quote 读规格做下单预算
  • Hermes Agent 反思阶段的 3 层反馈闭环:Skill 自主优化实测提升 37% 生成准确率
  • 校园外卖市场还值得做吗?一文看懂校园外卖系统源码开发搭建
  • yolo26 pt转onnx
  • Maven高级
  • 一种基于TSPC-DFF的高速低功耗Fractional PLL实现
  • 养老护理员网课选哪家好?3大平台网课深度测评!
  • 2026针对压力少白头的森优时铁锌维推荐 科学内调改善毛囊营养
  • DDoS防护架构解析与实战经验
  • 小程序源码
  • Figma 设计稿直转可运行代码:Vibe Coding 联动 Cursor 的 4 步自动化工作流
  • 深入解析Token(原生代币):从原理到未来,开发者必读指南