Was ist der Unterschied zwischen einem 2D-Array und einem 3D-Array?


Antwort 1:

Grundsätzlich der gleiche Unterschied wie zwischen einem Quadrat und einem Würfel, eine Dimension mehr. Wenn Sie sich ein 2D-Array als ein Stück Papier mit einem quadratischen Gitter vorstellen, verwenden Sie Millimeterpapier. Dann ist ein 3D-Array ein Stapel dieser Papierstücke.

Genauer gesagt

Array2d [1,2] würde den ersten Eintrag quer und den zweiten abwärts indizieren.

Array3D [1,2,3] indiziert den ersten Eintrag quer und den zweiten unten auf dem dritten Blatt Papier im Stapel.


Antwort 2:

In Bezug auf die Bedeutung der Dinge repräsentiert ein 2D-Array ein nullbasiertes (x, y) Gitter, während ein 3D-Array einen nullbasierten (x, y, z) Raum repräsentiert.

In Bezug auf die Syntax:

int arr2d [MAX_ROW] [MAX_COL];
int arr3d [MAX_WIDTH] [MAX_HEIGHT] [MAX_DEEP];

In Bezug auf die Speicherzuweisung gibt es jedoch keine tiefgreifende Änderung zwischen ein-, zwei- oder dreidimensionalen Arrays. Ein Array ist also nur eine Folge von Werten desselben Typs. Was sich ändert, ist nur die Zeigerarithmetik, mit der auf ein Element innerhalb eines ein-, zwei-, dreidimensionalen oder sogar höchstdimensionalen Arrays zugegriffen wird.