如果把一维数组理解为一行数据,那么,二维数组可形象地表示为行列结构。

    

二维数组的定义

和数组一样,需要先定义,再使用。
int b[25] ; //一行有25个元素

int a[5][25]; //五行元素,每行有25列

//定义了一个二维数组,
//数组名是“a”,
//包含 5 行 25 列,共 125 元素
//每个元素是 int 类型的变量

    

二维数组的初始化

int a[3][4]; //若未对二维数组进行初始化
          //元素的值可能是随机的(全局变量会初始化为 0,局部变量值随机)

方式一:
int a[3][4]={ //等效于 int a[][4]
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

注:最外围括号内部的每个括号相当于初始化一行,括号中可以省略某些元素的初始化

    
方式二: 初始化时从头开始,依次序进行
int a[3][4]={ 1,2,3,4,5,6,7,8,9,10,11,12};
int a[3][4]={ 0}; //所有元素都初始化为 0

注:后面的多个元素可以不指定,不指定全部初始化为 0

#include <stdlib.h>
#include <stdio.h> int main(void){ int i=0, j=0; //初始化 //第一种方式 初始化时指定每行的值 int a[3][4]={ {1},//省略掉得列会默认置零 {5,6,7}, {9,10,11,12}};//第二种方式 初始化时从头开始,依次序进行 int a1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int a2[3][4]={1};//只初始化第一个,其他得默认置零 for(i=0; i<3; i++){ for(j=0; j<4; j++){ printf("%d ", a[i][j]); }printf("\n"); }printf("\n"); for(i=0; i<3; i++){ for(j=0; j<4; j++){ printf("%d ", a1[i][j]); }printf("\n"); }printf("\n"); for(i=0; i<3; i++){ for(j=0; j<4; j++){ printf("%d ", a2[i][j]); }printf("\n"); }printf("\n"); system("pause"); return 0;
}

    

二维数组的访问

//定义一个二维数组
a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

    

二维数组的存储方式

一维数组是按顺序存储的,二维数组呢? 同样也是!

    

多维数组

上面讨论的二维数组的相关内容都适用于三维数组或更多维的数组。声明一个三维数组:

int girl[3][8][5];
可以把一维数组想象成一排女兵,把二维数组想象成一个女兵方阵,把三维数组想象成多个 女兵方阵。

    

二维数组作为函数的参数

切记! 数组作为函数的参数传递,不是单纯的值传递,传递的是数组本身。

修为进阶——二维数组相关推荐

  1. 杨桃的Python进阶讲座16——数组array(六)一维数组和二维数组的索引和取值(配详细图解)

    本人CSDN博客专栏:https://blog.csdn.net/yty_7 Github地址:https://github.com/yot777/ 在进阶讲座8中讲过数组(矩阵)的维度,我们再看看多 ...

  2. 【C语言进阶深度学习记录】三十 二维数组与二维指针

    文章目录 1 二维指针(指向指针的指针) 2 二维数组 3 二维数组的类型 3.2 如何动态申请二维数组 4 总结 1 二维指针(指向指针的指针) 指针的本质是变量 指针的指针是保存指针变量的地址.如 ...

  3. JAVA进阶开发之(二维数组)

    1.二维数组其实是一个特殊的一维数组,特殊在这个二维数组中每一个元素是一个一维数组 2.就是一维数组里面都是一样的元素,二维数组就是把元素换成了一维数组 3.实际开发中,使用最多的就是一维数组,二维数 ...

  4. 【C语言】指针表达进阶:指针在一维数组、二维数组的应用(如何用指针表达一维数组、二维数组的元素的地址、元素值)

    指针可以替代数组名 1.在一维数组中:int a[9]; int *p=a; 一维数组名指向的是列!(后面总结,迷得话不用慌) 则想要获取a[i]的地址方法:a+i; .p+i; .p[i]; 获取a ...

  5. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  6. jupyter notebook多维数组运算_Python创建二维数组的正确姿势

    List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...

  7. vue 二维数组_最近研究Vue源码时我发现的一些好玩函数

    来源 | segmentfault.com/u/chinamasters 作者 | chinamasters 最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大 ...

  8. vba二维数组初始化_将工作表数据写入VBA数组

    大家好,最近推出的内容是"VBA信息获取与处理"中的部分内容,这套教程面向中高级人员,涉及范围更广,实用性更强,现在的内容是第四个专题"EXCEL工作表数据的读取.回填和 ...

  9. vba动态二维数组_VBA实战技巧05: 动态调整数组以存储所需数据

    学习Excel技术,关注微信公众号: excelperfect 数组是一种常用的数据结构,可用来存储一组相同类型的数据,你可以将一个数组变量视为一个迷你的电子表格,通过引用数组中的位置来存储或者获取数 ...

最新文章

  1. oracle时间戳找回数据库,【备份恢复】 闪回数据库(三) 基于时间戳闪回数据库...
  2. Android性能优化之虚拟机调优
  3. 如何使用Chrome开发者工具调试web socket应用
  4. Linux 设备驱动开发思想 —— 驱动分层与驱动分离
  5. “融合、智能、绿色”施耐德电气线上工博以全生命周期解决方案助推数字化
  6. Head First Java学习笔记(2):类与对象
  7. 使用git在本地电脑与远程GitHub/gitlub库中clone别人的github上的远程仓库代码,找资源
  8. Elasticsearch--Docker安装kibana---全文检索引擎ElasticSearch工作笔记003
  9. 推荐:class文件反编译工具Java Decomplier
  10. 小记 -- cadence安装记录
  11. 单片机原理及应用c51语言版林立,单片机原理及应用——基于Proteus和Keil C(第4版)...
  12. Word2010中插入多级列表编号将默认标题样式变成多级编号
  13. 5G网络切片的七种武器(六)
  14. 查询服务器时显示failbyOEM,java - 使用 Weblogic 12c,给出警告警告日志管理 BEA-170011 该服务器上的 LogBroadcaster 失败 - 堆栈内存溢出...
  15. js仿照 蚂蚁森林 效果
  16. 12306火车票查询——Python
  17. 14. Setting Ta and RTO【设置Ta和RTO】
  18. 解决云服务器上go-cqhttp扫码登录QQ失败问题
  19. 这十一条程序员必备软技能,你一定要知道
  20. Android_2_常用控件及常用属性

热门文章

  1. 数据库期中考试这一篇就够了
  2. [ARC092D] Two Faced Edges
  3. systemd-logind导致ssh登录缓慢解决办法
  4. linux程序员最好用的笔记本,程序员的最爱 微软Linux大会终于来了
  5. FX5U PLC与台达变频器进行MODBUS RTU通信的具体方法和步骤(非常详细)
  6. 使用微信小程序客服消息上的一些注意事项!小程序客服消息按钮,接入及消息接收
  7. ARM 编译器 Arm Compiler for Embedded 6 相关工具链简介
  8. 免费馅饼-----线性DP
  9. 在线一键拼接图片工具HTML源码分享
  10. 通过阿里大于发送短信,新手入门指导手册