首页 > 解决方案 > 为什么要使用二维结构数组?

问题描述

我很好奇是否有使用二维结构数组的情况,例如 fe:

typedef struct
{
 //member variables
}myStruct;

myStruct array2D[x][y]; 
//Uses cases of array2D[x][y]? Do we need them?

为什么要使用二维结构数组?

标签: carraysmultidimensional-arraystructdimensions

解决方案


为什么要使用二维结构数组?

定义的结构基本上只是一种与其他类型一样的类型(当然,任何类型都与其他类型不同,私有数据类型和标准数据类型之间存在差异;更不用说该类型对象之间的内存分配差异)你可以声明对象。

您还可以问:为什么要使用char或二维数组?intdouble

它不仅是一种结构本身的东西。

在代码中拥有清晰的“结构”取决于上下文及其价值;所以以这种方式编码可以帮助你使你的代码更具可读性和清晰性,如果你需要大量的某种类型的对象,在这种情况下是一个结构。

也许您甚至想对一些对象进行分组和/或想以不同的方式对待它们。在这种情况下,多个数组维度是有益的,因为您可以显式地分别处理每个维度的对象。

正如@buysbee在评论中提到的:

将结构对象存储在二维数组中的一个明显示例是存储图片的像素。最好将“像素”结构对象存储在二维数组中,因为这模拟了图片的自然构造方式。


推荐阅读