C/C++教程

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

本文主要是介绍【备战春招】第十七天c语言中的二维数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 课程名称:嵌入式工程师
  • 学习章节:c语言中的二维数组
  • 学习链接:https://class.imooc.com/sc/148/learn
  • 讲师姓名:大白老师

课程内容:

二维数组

含义

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

定义方式

格式

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

示例

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

学习收获:

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

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

截图打卡:

这篇关于【备战春招】第十七天c语言中的二维数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!