为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第十七天c语言中的二维数组

标签:
C 嵌入式

课程内容:

二维数组

含义

一维数组是相同数据类型元素的集合,但是只能表示一行数据。 若是存在行和列相关的信息(例如矩阵),我们就需要用二位数组来表示.

定义方式

格式

数据类型 数组名[行数][列数];

示例

int a[3][4]; //3行四列

3行从上往下查3个

4列从左往右查4个

有时候行可以省略但是列不能省略

int a[][4]

在内存中按照还是按照一维数组的顺序排序的。

只不过,为了方便人们识别,我们是按照二维的来理解。

内存代码图示

0xd10 1 a[0][0]

0xd14 2 a[0][1]

0xd18 3 a[0][2]

0xd1c 4 a[0][3]

0xd20 5 a[1][0]

0xd24 6 a[1][1]

0xd28 7 a[1][2]

0xd2c 8 a[1][3]

0xd30 9 a[2][0]

0xd34 10 a[2][1]

0xd38 11 a[2][2]

0xd3c 12 a[2][3]

二维数组结论

int a[3][2];

[1]a的类型: int [3][2]

[2]元素的表达方式:a[0][0],a[0][1],a[0][2] …a[2][3]

[3]元素的个数: 行数 * 列数

[4]数组的大小: 元素的个数 * 一个元素的大小<=>6 * sizeof(a[0][0])<>sizeof(a)

[5]数组最后一个元素: a[行数 - 1][列数 - 1]

[6]内存的存放方式:按行优先存放.

[7]定义二维数组的时候,行数可以省略不写,系统会根据默认

初始化元素的个数来分配对应的内存空间。但是列数一定要写。

(因为二维数组默认按行来进行优先存放的)

例如:

int a[3][4]; //true

int a[][4] = {1,2,3,4,5,6,7,8}; //true

//int a[3][] = {1,2,3,4,5,6,7,8,9}; //flase

// 123 1 2 3 4

// 567 5 6 7 8

// 789 9 0 0 0 //都是3行,有多种排列方式,系统不能识别。

// int a[][] = {1,2,3,4,5,6,7,8}; //flase

二维数组的初始化

完全初始化

int a[3][3] = {1,2,3,4,5,6,7,8,9};

int b[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

部分初始化

int a[][3] = {1,2,3,4,5,6}; //true

//int a[3][] = {1,2,3,4,5,6}; //false

学习收获:

通过本章学习知道了二维数组和一维数组的区别

对维度和行列的概念有了更清楚地认知

截图打卡:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消