用虚拟机做网站的心得体会,网站建设计划书下载,中卫市建设网站,米拓 wordpress【C语言】数组#xff08;下#xff09; 6、二维数组的创建6.1二维数组的概念6.2二维数组的创建 7、二维数组的初始化7.1不完全初始化7.2完全初始化7.3按照行初始化7.4初始化时可以省略行#xff0c;但是不能省略列 8、二维数组的使用8.1 二维数组的下标8.2二维数组的输入和… 【C语言】数组下 6、二维数组的创建6.1二维数组的概念6.2二维数组的创建 7、二维数组的初始化7.1不完全初始化7.2完全初始化7.3按照行初始化7.4初始化时可以省略行但是不能省略列 8、二维数组的使用8.1 二维数组的下标8.2二维数组的输入和输出 9、二维数组在内存中的存储10、C99中的变长数组 6、二维数组的创建
6.1二维数组的概念
通过数组上介绍我们学习了一维数组数组的元素都是内置类型的如果我们把一维数组作为数组的元素这时就是二维数组以此类推如果把二维数组作为数组的元素那么被称为三维数组。二维数组以上的我们称为多维数组。
以下为图例
6.2二维数组的创建
二维数组的语法如下
type arr_name[常量值1][常量值2];
eg:
int arr[5][3];
double score[5][10];解释
int类型数组中5代表有5行int类型数组中3代表有3列int表示二维数组中每个元素的类型都是整型类型。arr 是数组名称可以根据自己的需要来创建。
7、二维数组的初始化
在前面创建变量的时候我们往往需要进行初始化这是学习编程的一个好的习惯。那么在二维数组中我们也可以给定一些初始值这样被称为二维数组的初始化。
二维数组的初始化也和一维数组初始化的方法一致都是在大括号里面给定一些初始值进行初始化的。
7.1不完全初始化
int arr1[4][6]{5,6};
int arr2[3][2]{0};不完全初始化初始值存放如下图所示
7.2完全初始化
int arr3[5][5]{1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,5,6,7,8,9};7.3按照行初始化
int arr4[4][3]{{1,2},{2,3},{3,4},{4,5}};7.4初始化时可以省略行但是不能省略列
int arr5[][8]{1,2,3,4,5};
int arr6[][6]{1,2,3,4,5,6,7,8,9};
int arr7[][5]{{1,2},{2,3},{3,4},{4,5}};8、二维数组的使用
8.1 二维数组的下标
二维数组的访问跟一维数组一样也是使用下标的形式二维数组是有行和列的确定了数组中某个元素的行和列后就能锁定数组中的某个元素。
int arr[3][5] {1,2,3,4,5, 2,3,4,5,6 ,3,4,5,6,7};图中左侧0、1、2表示行数上面的数字表示列数。我们找二维数组的元素都是从行号0和列号0开始的比如第一行第三列的元素是5. 代码运行结果如图所示
8.2二维数组的输入和输出
访问二维数组的单个元素的方法介绍之后那么如何访问整个二维数组呢 只要我们能够想办法按照一定的规律产生所有的行和列的数字就可以以上面的代码为例子行的范围在0-2列的范围在0-4我们可以借助循环来实现生成所有的下标。
9、二维数组在内存中的存储
像⼀维数组⼀样我们如果想研究⼆维数组在内存中的存储⽅式我们也是可以打印出数组所有元素 的地址的。代码如下 通过输出的结果可以看出每一行内部的每个元素都是相邻的地址之间相差4个字节跨⾏位置处的两个元 素如arr[0][4]和arr[1][0]之间也是差4个字节所以⼆维数组中的每个元素都是连续存放的。 10、C99中的变长数组
在C99标准之前C语言在创建数组的时候数组大小的指定只能使用常量、常量表达式或者如果我 们初始化数据的话可以省略数组大小。 在C99之后引入变长数组的概念使得数组大小可以用变量表示但是VS2022版本不支持变长数组即使用变量指定数组的大小
int arr1[10];
int arr2[35];
int arr3[]{1,2,3};
这样的语法限制让我们创建数组就不够灵活有时候数组大了浪费空间有时候数组又小了不够使用 的。