C语言高级教程-C语言数组(四):多维数组
- 一、本文的编译环境
- 二、二维数组的声明
- 三、三维数组的声明
- 四、数组的声明程序编译结果
- 五、完整程序
- 5.1 Main.h 文件程序
- 5.2 Main.c 文件程序
- 六、总结
一、本文的编译环境
本文的编译环境使用的是集成开发环境:Visual Studio 2019
Visual Studio 2019官网链接如下
Visual Studio 2019官网链接
Visual Studio 2019集成的开发环境的特点有
- Visual Studio 2019默认安装Live Share代码协作服务。
- 帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进。
- Visual Studio IntelliCode AI帮助。
- 更好的Python虚拟和Conda支持。
- 以及对包括WinForms和WPF在内的.NET Core 3.0项目支持等 。
二、二维数组的声明
二维数组可以声明如下
float carrots[25][50];
- 这行语句声明了一个数组carrots,它包含25行50个浮点数元素。
- 注意每一维都放 在自己的方括号中。
同样,可以用以下的语句声明另一个二维浮点数数组
float numbers[3][5];
与田里的蔬菜一样,使这些数组排成矩形会比较方便。把这个数组排成3行5列,
它们实际上按行顺序存储在内存中。
如下图所示
3行5列元素数组在内存中的组织方式
很容易看出,最右边的索引变化地最快。在概念上,左边的索引选择一行,右边的索引选择该行中的一个元素。
上图说明了如何将二维数组想象成一维数组, 其中的每个元素本身是一个一维数组。
可以将number数组视为3个元素的一-维数组,数组中的每个元素都含有5个float类型的元素。
第一行的5个float元素位于标记为numbers[0]的内存地址上,第二行的5个float 元素位于numbers[1],最后一行的 5个元素位于numbers[2]。
当然,分配给每个元素的内存量取决于数组所含的变量的类型。
double类型的数组需要的内存比float或int类型的数组多。
下图说明了数组
numbers[4][10]
的存储方式,该数组有4行10个float类型的元素
- 因为数组元素的类型是float,它在机器上占4个字节,这个数组占用的内存总数是 4X10X4个字节,即为160个字节。
三、三维数组的声明
三维数组是二维数组的扩展:
double beans[4] [10] [20]; // 4 fields, each with 10 rows of 20 beans
- 这个语句声明的数组有800个元素,可以把它看作存储豆类植物的产量,豆类植物
有三块田,每块田包含10行20列植物。 - 根据需要,可以定义任意多维数组。
四、数组的声明程序编译结果
数组的声明程序编译结果如下所示
已启动重新生成…1>------ 已启动全部重新生成: 项目: 5.4-多维数组, 配置: Debug Win32 ------1>Main.c1>E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\5.4-多维数组\Main.c(10,8): warning C4101: “carrots”: 未引用的局部变量1>E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\5.4-多维数组\Main.c(11,8): warning C4101: “numbers”: 未引用的局部变量1>E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\5.4-多维数组\Main.c(14,9): warning C4101: “beans”: 未引用的局部变量1>5.4-多维数组.vcxproj -> E:\Document\2-programmLanguageExper\C\C语言入门经典\C语言入门经典\Debug\5.4-多维数组.exe1>已完成生成项目“5.4-多维数组.vcxproj”的操作。========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
编译程序运行结果如下所示
五、完整程序
本文的完整程序如下所示
5.1 Main.h 文件程序
#ifndef MAIN_H#define MAIN_H#include #include #endif
5.2 Main.c 文件程序
#define _CRT_SECURE_NO_WARNINGS#include "Main.h"int main(){system("color 3E");// 二维数组的声明float carrots[25][50];float numbers[3][5];// 三维数组的声明double beans[4][10][20]; // 4 fields, each with 10 rows of 20 beanssystem("pause");return 0;}
六、总结
本文主要介绍了C语言高级编程的数组的多维数组的声明方式。
介绍了二维数组声明方式。
介绍了二维数组声明方式。
本文到这里就结束啦。
- 希望本文的C语言数组的多维数组。
- 能对你有所帮助。