Programmierung · 4 min read · Nov 19, 2025

Linux C Programmierung Tutorial Teil 24 - Mehrdimensionale Arrays

Wenn Sie dieser fortlaufenden C-Programmier-Tutorial-Serie folgen, sind Sie sich des Konzepts von Arrays bewusst. Um schnell aufzufrischen: Arrays werden verwendet, um mehrere Werte desselben Typs in kontinuierlichem Speicher zu speichern.

Mehrdimensionale Arrays in C

Zum Beispiel ist das folgende ein Integer-Array, das in der Lage ist, 5 Zahlen zu speichern.

int arr[5]

Jeder Wert, der in einem Array gespeichert ist, kann einfach mit dem Array-Namen und dem entsprechenden Indexwert zugegriffen werden. Da die Indizes bei 0 beginnen, sagen wir, wenn Sie auf das zweite Element in einem Array zugreifen möchten, können Sie das auf folgende Weise tun:

arr[1]

Das folgende Programm akzeptiert 5 Ganzzahlen vom Benutzer als Eingabe, speichert sie in einem Array und gibt sie dann wieder an den Benutzer aus.

#include   
  
int main()  
{  
 int arr[5],i;  
   
 printf("Geben Sie 5 Ganzzahlen ein\n");  
   
 for(i=0;i<5;i++)  
 scanf("%d",&(arr[i]));  
   
 printf("Sie haben die folgenden Werte eingegeben:\n");  
   
 for(i=0;i<5;i++)  
 printf("%d\n",arr[i]);  
   
  
 return 0;  
}

Jetzt ist diese Art von Array als eindimensionales Array bekannt. Ja, das bedeutet, dass es auch mehrdimensionale Arrays gibt - zweidimensionale Arrays, dreidimensionale Arrays und so weiter. Zum Beispiel ist das folgende ein zweidimensionales Array:

int arr[2][3]

Sie können dieses Array als eine 2-D-Tabelle von Zahlen mit 2 Zeilen und 3 Spalten visualisieren - etwas wie das Folgende:

x x x  
x x x 

Insgesamt kann dieses Array 6 Elemente halten. Es ist erwähnenswert, dass die Gesamtzahl der Elemente, die ein Array halten kann, leicht berechnet werden kann, indem man die Indizes in der Deklaration des Arrays multipliziert. Zum Beispiel kann im Fall von ‘arr’ die Kapazität des Arrays berechnet werden, indem man 2x3 macht, was 6 ergibt.

Kommen wir zum Initialisierungsteil, ein 2-D-Array wie ‘arr’ kann auf folgende Weise initialisiert werden:

int arr [2][3] = {1,2,3,4,5,6}

Da diese oben genannte Initialisierung es schwierig macht, diese Werte in einem 2-D-Array zu visualisieren, gibt es eine andere (lesen: bessere) Möglichkeit, die Sie wählen können. Hier ist sie:

int arr [2][3] = { {1,2,3}, {4,5,6} };

Jetzt ist es einfach zu visualisieren, dass die Zahlen 1,2,3 in einer Zeile sind, während 4,5,6 in der anderen sind. Hier haben Sie:

1 2 3  
4 5 6

Was die Handhabung eines 2-D-Arrays in C betrifft, so ist hier ein kleines Programm, das diese 6 Werte vom Benutzer akzeptiert, sie in einem 2-D-Array ‘arr’ speichert und sie schließlich wieder an den Benutzer ausgibt:

#include   
  
int main()  
{  
   int arr[2][3],i,j;  
   
   printf("Sie sind dabei, Werte für ein 2x3-Array einzugeben\n");  
   
   for(i=0;i<2;i++)  
   {  
     for(j=0;j<3;j++)  
     {  
       printf("\n Geben Sie den Wert ein, der in Zeile %d und Spalte %d gespeichert werden soll :: ",i,j);  
       scanf("%d",&arr[i][j]);  
     }  
   }  
   
   printf("\n Sie haben die folgenden Werte eingegeben:\n");  
   
   for(i=0;i<2;i++)  
   {  
     for(j=0;j<3;j++)  
     {  
       printf("\n Zeile %d und Spalte %d = %d\n",i,j,arr[i][j]);  
     }  
   }  
   
  
   return 0;  
}

Und hier ist die Ausgabe:

Sie sind dabei, Werte für ein 2x3-Array einzugeben   
   
 Geben Sie den Wert ein, der in Zeile 0 und Spalte 0 gespeichert werden soll :: 1   
   
 Geben Sie den Wert ein, der in Zeile 0 und Spalte 1 gespeichert werden soll :: 2   
   
 Geben Sie den Wert ein, der in Zeile 0 und Spalte 2 gespeichert werden soll :: 3   
   
 Geben Sie den Wert ein, der in Zeile 1 und Spalte 0 gespeichert werden soll :: 4   
   
 Geben Sie den Wert ein, der in Zeile 1 und Spalte 1 gespeichert werden soll :: 5   
   
 Geben Sie den Wert ein, der in Zeile 1 und Spalte 2 gespeichert werden soll :: 6   
   

Sie haben die folgenden Werte eingegeben:   
   
 Zeile 0 und Spalte 0 = 1   
   
 Zeile 0 und Spalte 1 = 2   
   
 Zeile 0 und Spalte 2 = 3   
   
 Zeile 1 und Spalte 0 = 4   
   
 Zeile 1 und Spalte 1 = 5   
   
 Zeile 1 und Spalte 2 = 6

Das war also einige grundlegende Informationen über zweidimensionale Arrays. Was ist mit 3-D-Arrays? Nun, in ähnlicher Weise können Sie auch dreidimensionale Arrays definieren und initialisieren. Hier ist ein Beispiel:

int arr[2][3][4]

Wie würde man dieses Array visualisieren? Nun, denken Sie an eine dreidimensionale Welt (die Welt, in der wir leben), und visualisieren Sie dann drei Dimensionen, die rechtwinklig zueinander stehen. So passen die drei Dimensionen dieses Arrays hinein.

Mit einer Kapazität von 24 Elementen (2x3x4) kann dieses Array auf folgende Weise initialisiert werden:

int x[2][3][4] =  
 {  
   { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} },
   { {13,14,15,16}, {17,18,19,20}, {21,22,23,24} }
 };

Und hier ist ein C-Programm, das ein 3-D-Array verwendet:

#include   
  
int main()  
{  
   int arr[2][3][4],i,j,k;  
   
   printf("Sie sind dabei, Werte für ein 2x3x4-Array einzugeben\n");  
   
   for(i=0;i<2;i++)  
   {  
     for(j=0;j<3;j++)  
     {  
       for(k=0;k<4;k++)  
       {  
          printf("\n Geben Sie den Wert ein, der an arr[%d][%d][%d] gespeichert werden soll :: ",i,j,k);  
          scanf("%d",&arr[i][j][k]);  
       }  
     }  
   }  
   
 printf("\n Sie haben die folgenden Werte eingegeben:\n");  
   
   for(i=0;i<2;i++)  
   {  
     for(j=0;j<3;j++)  
     {  
       for(k=0;k<4;k++)  
       {  
          printf("\n arr[%d][%d][%d] = %d\n",i,j,k,arr[i][j][k]);  
       }  
     }  
   }  
   
  
 return 0;  
}

Fazit

In diesem Tutorial haben wir unser bestehendes Verständnis von Arrays erweitert, indem wir das Konzept der mehrdimensionalen Arrays besprochen haben. Es wird empfohlen, die in diesem Tutorial verwendeten Beispiele auf Ihrem System auszuprobieren (sowie neue zu erstellen), um ein besseres Verständnis dafür zu bekommen, wie diese Arrays funktionieren. Bei Fragen oder Zweifeln hinterlassen Sie bitte einen Kommentar unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.