Du möchtest wissen, wie du Arrays in C programmieren kannst? Im Folgenden zeigen wir dir, wie das Ganze funktioniert.
Inhaltsübersicht
Arrays C – Was sind Arrays?
Damit du diese praktischen Helfer verwenden kannst, musst du erst einmal wissen, was Arrays oder Felder, wie sie zu Deutsch genannt werden, sind. Im Grunde genommen hat ein Feld nicht viel mit Arrays zu tun.
Solange wir uns auf die eindimensionalen Arrays beschränken, kannst du sie dir eher vorstellen, wie eine nummerierte Tabelle. Wir haben eine bestimmte Anzahl an Feldern, denen wir eine Nummer zuordnen. Diese Felder müssen alle vom selben Datentyp sein. Diesen Datentyp weist dann auch das Array selbst auf.
Programmieren von Arrays
Deklariert wird ein Array so:
type array_name [number_of_components];
Der Datentyp bildet den Anfang. Gleich danach geben wir unserer Liste einen Namen, damit wir in unserem Stapel von Blättern auch noch die richtige Liste finden. Außerdem müssen wir noch die Menge der maximal speicherbaren Komponenten angeben.
Das ist logisch. Schließlich gibt es nur begrenzt Platz auf einem Blatt Papier, und mit Speicher verhält es sich nicht anders. Der Compiler muss nämlich wissen, wie viel Speicher er für unser Array reservieren muss. Wenn er das tut, nutzt er auch unseren Array-Namen. Um den Anfang unseres Feldes finden zu können, speichert er in diese Konstante nämlich die Adresse der ersten Speicherzelle, die reserviert wird.
Studyflix vernetzt: Hier ein Video aus einem anderen Bereich
Werte aufrufen
Das ist ja schön und gut, aber mit einer leeren Tabelle können wir erst einmal nicht viel anfangen. Wie speichern wir also Werte hinein? Gibst du den Arraynamen mit einer normalen Wertzuweisung an, erhältst du einen Fehler im Programm, da du die Speicheradresse deines Arrays bearbeitest, nicht die gespeicherten Komponenten. Um an die Werte unseres Arrays zu kommen, müssen wir jedes „Tabellen-Feld“ einzeln ansprechen. Das können wir mittels eines Index. Mit:
array_name [i] = 1;
können wir also auf den Listen-Eintrag Nummer i-1 zugreifen. Aber warum i-1? Das liegt daran, dass der erste Wert unseres Feldes in array_name[0] gespeichert wird. Der Rest der reservierten Speicherzellen liegt direkt dahinter.
Willst du jetzt beim Initialisieren nicht wieder genau so viel Arbeit wie vorher haben, indem du jeden Wert einzeln zuweist, kannst du – wenn auch nur bei der Initialisierung – auf diesen Befehl zurückgreifen:
int array_name [3] = (50, 95, 7);
Damit werden die Werte des Arrays von links nach rechts mit den angegebenen Werten aufgefüllt.
Ausnahmen
Wie immer gibt es natürlich eine Ausnahme zu dieser Regel. In diesem Fall sind das die Arrays vom Typ char. Bei „normalen“ Arrays musst du nur aufpassen, dass du nicht aus Versehen auf eine Speicheradresse außerhalb des, für dein Feld reservierten, Speichers zugreifst. Im Gegensatz zu den meisten möglichen Fehlern in C gibt der Compiler hier nämlich keinen Fehler aus. Das heißt aber nicht, dass du damit keinen Schaden anrichtest.
Im Gegenteil – du manipulierst die Werte einer Speicherzelle, die für etwas ganz Anderes gedacht war. Dadurch kannst du unter Umständen sogar ein ganzes Programm zum Absturz bringen.
Nun kannst du also Arrays innerhalb der main-Methode verwenden, aber was, wenn du sie an eine andere Funktion übergeben willst? Das ist ganz einfach, denn du musst weder beim Funktionsaufruf, noch im Funktionskopf der Methode die Größe deines Arrays angeben. Allerdings musst du die Länge deines Feldes dadurch als extra Parameter angeben, wenn sie gebraucht wird.
Arrays — häufigste Fragen
(ausklappen)
Arrays — häufigste Fragen
(ausklappen)-
Was macht ein Array?Ein Array ist in C eine feste, zusammenhängende Liste von gleichartigen Werten, die unter einem Namen gespeichert wird. Man greift über einen Index auf einzelne Elemente zu, statt viele einzelne Variablen anzulegen. So lassen sich zum Beispiel mehrere Messwerte als
int werte[10];gesammelt speichern. -
Ist ein String ein char-Array?Ein String ist in C normalerweise ein
char-Array, das am Ende ein Nullzeichen„\0“enthält, damit das Textende erkannt wird. Zum Beispiel enthältchar s[] = "Hi";die ZeichenH,iund„\0“in aufeinanderfolgenden Speicherzellen. -
Wie bestimmt man die Länge eines Arrays in C?Die Länge eines Arrays bestimmt man in C, indem man im selben Gültigkeitsbereich
sizeofbenutzt:size_t n = sizeof(a) / sizeof(a[0]);. Innerhalb einer Funktion, die das Array als Parameter bekommt, funktioniert das nicht mehr zuverlässig, deshalb muss man die Länge dort separat mitgeben. -
Wie übergibt man ein Array an eine Funktion in C?Ein Array übergibt man in C an eine Funktion, indem man beim Aufruf nur den Arraynamen schreibt, zum Beispiel
f(a, n);. Im Funktionskopf steht ein Array- oder Zeigerparameter wievoid f(int a[], int n)odervoid f(int *a, int n), undnist die Länge.
Programmierung verstehen
Arrays sind ein Grundbaustein der Programmierung und helfen dir, mehrere Werte eines Datentyps geordnet zu speichern. Du ordnest in diesem Themenfeld Daten, Variablen und Funktionen in klare Strukturen ein. Dabei verstehst du, wie Speicher, Indizes und Abläufe in einem Programm zusammenhängen. Im Informatikbereich findest du passende Videos zu diesem und verwandten Themen.
