• C语言高级教程-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];
    
    • 1
    • 这行语句声明了一个数组carrots,它包含25行50个浮点数元素。
    • 注意每一维都放 在自己的方括号中。

    同样,可以用以下的语句声明另一个二维浮点数数组

    float numbers[3][5];
    
    • 1

    与田里的蔬菜一样,使这些数组排成矩形会比较方便。把这个数组排成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
    
    • 1
    • 这个语句声明的数组有800个元素,可以把它看作存储豆类植物的产量,豆类植物
      有三块田,每块田包含10行20列植物。
    • 根据需要,可以定义任意多维数组。

    四、数组的声明程序编译结果

    数组的声明程序编译结果如下所示

    已启动重新生成…
    1>------ 已启动全部重新生成: 项目: 5.4-多维数组, 配置: Debug Win32 ------
    1>Main.c
    1>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-多维数组.exe
    1>已完成生成项目“5.4-多维数组.vcxproj”的操作。
    ========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0==========
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    编译程序运行结果如下所示

    在这里插入图片描述

    五、完整程序

    本文的完整程序如下所示

    5.1 Main.h 文件程序

    #ifndef MAIN_H
    #define MAIN_H
    
    
    #include 
    #include 
    
    
    #endif
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    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 beans
    
    	system("pause");
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    六、总结

    在这里插入图片描述

    本文主要介绍了C语言高级编程的数组的多维数组的声明方式。
    介绍了二维数组声明方式。
    介绍了二维数组声明方式。

    本文到这里就结束啦。

    • 希望本文的C语言数组的多维数组。
    • 能对你有所帮助。
  • 相关阅读:
    java.lang.Float类下toString(float f)方法具有什么功能呢?
    实际电容的频率特性
    第10讲:DQL数据查询语句之LIMIT分页查询示例
    案例:用户管理
    Typora 窗口总数跳动问题
    useEffect 的监听原理
    xss-labs靶场1-5关
    [DebugMode]\RefreshMenu
    iframe 跨域之间共享localStorage,sessionStorage
    RBA责任商业联盟行为准则
  • 原文地址:https://blog.csdn.net/m0_47419053/article/details/127342213