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部分入住剩下的自动补0inta[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就像把每层楼的走廊拆开首尾相连拼成一条大走廊。 五、完整演示给整栋楼安排住户#includestdio.hintmain(){intbuilding[3][4];// 3层4间的楼intfloor,room;// 1. 让用户输入每个房间的住户号printf(请输入12个住户号\n);for(floor0;floor3;floor){for(room0;room4;room){scanf(%d,building[floor][room]);}}// 2. 把3楼4号房改成VIPbuilding[2][3]999;// 3. 打印整栋楼的住户表printf(当前住户表\n);for(floor0;floor3;floor){for(room0;room4;room){printf(%d\t,building[floor][room]);}printf(\n);}return0;}✨ 六、一句话总结二维数组 一栋楼行是楼层列是房间号。遍历就是从一楼到顶楼每层挨个房间敲门。下次遇到arr[i][j]心里默念第 i 层第 j 号房瞬间通透如果这篇笔记帮你搞懂了二维数组记得点赞收藏还有哪里迷糊的评论区留言我用人话继续给你讲