C 为什么要使用二维结构数组?
我很好奇是否有使用2D结构数组的情况,比如f.e:C 为什么要使用二维结构数组?,c,arrays,multidimensional-array,struct,dimensions,C,Arrays,Multidimensional Array,Struct,Dimensions,我很好奇是否有使用2D结构数组的情况,比如f.e: typedef struct { //member variables }myStruct; myStruct array2D[x][y]; //Uses cases of array2D[x][y]? Do we need them? 为什么要使用二维结构数组 为什么要使用二维结构数组 定义的结构基本上就是一种类型,与任何其他类型一样(当然,任何类型都不同,并且私有数据类型和标准数据类型之间存在差异;甚至不提及该类型的对象之间的内存分
typedef struct
{
//member variables
}myStruct;
myStruct array2D[x][y];
//Uses cases of array2D[x][y]? Do we need them?
为什么要使用二维结构数组
为什么要使用二维结构数组
定义的结构基本上就是一种类型,与任何其他类型一样(当然,任何类型都不同,并且私有数据类型和标准数据类型之间存在差异;甚至不提及该类型的对象之间的内存分配差异),您可以用它声明对象
您还可以问:为什么要使用char
、int
或double
二维数组
这不仅仅是一种结构本身的东西
在代码中有一个清晰的“结构”取决于上下文及其价值;因此,如果您需要大量特定类型的对象(在本例中为结构),以这种方式编写代码可以帮助您使代码更可读、更清晰
也许你甚至想对一些对象进行分组和/或以不同的方式对待它们。在这种情况下,多个数组维度是有益的,因为您可以显式地分别寻址每个维度的对象
如评论中所述:
在二维数组中存储结构对象有益的一个明显示例是存储图片的像素。最好将“像素”结构对象存储在二维数组中,因为这模拟了图片是如何自然构建的。我们可以添加更多问题:为什么要使用3D、4D。5D。。。。。。10000000个数组
项目中使用的数据结构取决于要解决的问题和选择的算法 嗯,所以根据你的答案,当你需要一个2D结构数组时,你可以使用它(也就是说,取决于上下文)?你可以添加一个明显的用例:存储图像。每个像素都存储在结构中,图像的所有像素都存储在二维数组中。大多数图像需要更多的元信息,所以这个数组可能是另一个
结构中的元素。这可能是以不同的方式对待它们,或者如果我有大量这种类型的对象的话,只是通过将它们分成几个维度来增加可读性。@thebusybee非常感谢您提供了一个很好的示例。这个问题之所以被否决,是因为它在某种意义上过于泛化吗?struct RGB{float R;float G;float b};结构RGB显示[1920][1080]
@Leon它可能被否决了,因为这个问题显示的背景信息较少,研究工作较少,而且因为“应该”这个问题在社区中经常被否决。不幸的是,我经常在这里亲身经历这种情况。不要把它当成私人的。我认为这是一个很好的问题。@robertsmonicacellio啊,我明白了,这就是其中之一