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

Why should you use a 2D array of structs?

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

typedef struct
{
 //member variables
}myStruct;

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

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

Why should you use a 2D array of structs?

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

你也可以问:为什么要使用charintdouble二维数组?

它不仅仅是一个结构自己的那种东西。

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

也许您甚至想对一些对象进行分组 and/or 想区别对待它们。在这种情况下,多个数组维度是有益的,因为您可以显式和单独地寻址每个维度的对象。

如评论中@buysbee所述:

一个明显的例子,在二维数组中存储结构对象是有益的,就是存储图片的像素。最好将"pixel"结构对象存储在二维数组中,因为这样可以模拟图片的自然构造方式。

我们可以补充更多的问题:为什么要用3D、4D。 5D ...... 10000000D 数组的东西。

项目中使用的数据结构取决于要解决的问题和选择的算法。