Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
c:tutorial:arrays [2017/02/03 00:37] dani93 |
c:tutorial:arrays [2022/09/22 19:58] (aktuell) |
||
---|---|---|---|
Zeile 65: | Zeile 65: | ||
<code cpp>int object = array[ 17 ];</code> | <code cpp>int object = array[ 17 ];</code> | ||
- | ''array'' ist ein Anreihung von 1000 Integers und wir weisen ''object'' das 18. Integer zu. Warum das 18, wenn in der Klammer doch eine 17 steht? Nun das erste Integer im Array hat den Index 0, das zweite den Index 1 und so weiter. | + | ''array'' ist eine Aneinanderreihung von 1000 Integers und wir weisen ''object'' das 18. Integer zu. Warum das 18., wenn in der Klammer doch eine 17 steht? Nun das erste Integer im Array hat den Index 0, das zweite den Index 1 und so weiter. |
- | In allen modernen Programmiersprachen beginnt man für ein Array bei 0 an zu zählen. Ein Array mit 1000 Elementen geht also vom 0. Element bis zum 999. Das 1000. Element stünde an Index 1001 - und so groß ist unser Array nicht, wir würden hier also einen Fehler begehen. Der C-Programmierer hat absolut freie Hand, was er programmiert und wenn er über die Größe eines Arrays hinweg geht, dann führt das zu willkürlichen Fehlern. Es ist ein typischer Anfängerfehler, die Grenzen der verwendeten Arrays nicht sauber zu beachten. Achtet darauf! | + | In allen modernen Programmiersprachen beginnt man für ein Array bei 0 an zu zählen. Ein Array mit 1000 Elementen geht also vom 0. Element bis zum 999. Index 1000 steht also für das 1001. Element - und so groß ist unser Array nicht, wir würden hier also einen Fehler begehen. Der C-Programmierer hat absolut freie Hand, was er programmiert und wenn er über die Größe eines Arrays hinweg geht, dann führt das zu willkürlichen Fehlern. Es ist ein typischer Anfängerfehler, die Grenzen der verwendeten Arrays nicht sauber zu beachten. Achtet darauf! |
In den eckigen Klammern wird der Index übergeben und dieser muss ja abzählbar sein. Es darf dort jede beliebige [[glossary:Expression]] stehen, solange der Datentyps Integer wieder ''int'' ergibt. Dass es eine [[glossary:Expression]] ist bedeutet, dass wir eine Konstante, wie in diesem Beispiel 17, angeben können, eine Variable, wie ''i'' im Beispiel zuvor oder auch eine Formel zur Berechnung des Indexes wird akzeptiert, zum Beispiel: | In den eckigen Klammern wird der Index übergeben und dieser muss ja abzählbar sein. Es darf dort jede beliebige [[glossary:Expression]] stehen, solange der Datentyps Integer wieder ''int'' ergibt. Dass es eine [[glossary:Expression]] ist bedeutet, dass wir eine Konstante, wie in diesem Beispiel 17, angeben können, eine Variable, wie ''i'' im Beispiel zuvor oder auch eine Formel zur Berechnung des Indexes wird akzeptiert, zum Beispiel: | ||
Zeile 73: | Zeile 73: | ||
<code cpp>int object = array[ i + 2 ];</code> | <code cpp>int object = array[ i + 2 ];</code> | ||
- | Achtet darauf, dass der Index auch negativ sein darf. So kann man auch vor den Startpunkt des Arrays greifen - das will man meistens nicht. Es gibt aber auch Fälle, in denen man vor den Startpunkt springen möchte. Hierfür verwendet man dann Zeiger, die wir in einem späteren Kapitel kennenlernen werden. | + | Achtet darauf, dass der Index auch negativ sein darf. So kann man auch vor den Startpunkt des Arrays greifen - das will man meistens nicht. Es gibt aber auch Fälle, in denen man vor den Startpunkt springen möchte. Hierfür verwendet man dann Zeiger, die möglicheriweise auf ein Element inmitten des Arrays zeigen. Diese werden wir in einem späteren Kapitel kennenlernen. |
===== Wie funktioniert ein Array? ===== | ===== Wie funktioniert ein Array? ===== |