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语言数组的多维数组。
  • 能对你有所帮助。