C Mehrdimensionale Arrays
Mehrdimensionale Arrays
Im vorherigen Kapitel haben Sie etwas über Arrays gelernt, die auch als eindimensionale Arrays bekannt sind. Diese sind großartig und etwas, das Sie beim Programmieren in C häufig verwenden werden. Wenn Sie Daten jedoch in tabellarischer Form speichern möchten, beispielsweise als Tabelle mit Zeilen und Spalten, Sie müssen sich mit mehrdimensionalen Arrays vertraut machen.
Ein mehrdimensionales Array ist im Grunde ein Array von Arrays.
Arrays können beliebig viele Dimensionen haben. In diesem Kapitel stellen wir die gebräuchlichsten vor; zweidimensionale Arrays (2D).
Zweidimensionale Arrays
Ein 2D-Array wird auch als Matrix (eine Tabelle aus Zeilen und Spalten) bezeichnet.
Um ein 2D-Array aus Ganzzahlen zu erstellen, sehen Sie sich das folgende Beispiel an:
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
Die erste Dimension stellt die Anzahl der Zeilen [2] dar, während die zweite Dimension die Anzahl der Spalten [3] darstellt. Die Werte werden in Zeilenreihenfolge angeordnet und können so visualisiert werden:
SPALTE 0 | SPALTE 1 | SPALTE 2 | |
---|---|---|---|
REIHE 0 | 1 | 4 | 2 |
REIHE 1 | 3 | 6 | 8 |
Greifen Sie auf die Elemente eines 2D-Arrays zu
Um auf ein Element eines zweidimensionalen Arrays zuzugreifen, müssen Sie die Indexnummer sowohl der Zeile als auch der Spalte angeben.
Diese Anweisung greift auf den Wert des Elements in der ersten Zeile (0) und der dritten Spalte (2) des Matrix-Arrays zu.
Beispiel
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
printf("%d", matrix[0][2]); // Ausgänge 2
Try it Yourself »
Denken Sie daran: Array-Indizes beginnen mit 0: [0] ist das erste Element. [1] ist das zweite Element usw.
Elemente in einem 2D-Array ändern
Um den Wert eines Elements zu ändern, beziehen Sie sich auf die Indexnummer des Elements in jeder der Dimensionen:
Das folgende Beispiel ändert den Wert des Elements in der ersten Zeile (0) und der ersten Spalte (0):
Beispiel
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
matrix[0][0] = 9;
printf("%d", matrix[0][0]); // Gibt jetzt 9 statt 1 aus
Try it Yourself »
Schleife durch ein 2D-Array
Um ein mehrdimensionales Array zu durchlaufen, benötigen Sie eine Schleife für jede Dimension des Arrays.
Das folgende Beispiel gibt alle Elemente im Array Matrix aus:
Beispiel
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++) {
printf("%d\n", matrix[i][j]);
}
}
Try it Yourself »