Video: Programmieren in C Tutorial #10 - Array Initialisieren 2024
In C ++ startet eine lokale Variable nicht mit einem gültigen Wert, nicht einmal mit dem Wert 0. Anders ausgedrückt: Eine lokale Variable enthält den Müll, bis Sie etwas in es. Lokal deklarierte Arrays sind gleich - jedes Element enthält Garbage, bis Sie ihm tatsächlich etwas zuweisen.
Sie sollten lokale Variablen initialisieren, wenn Sie sie deklarieren. Diese Regel ist für Arrays sogar noch wahrer. Es ist viel zu einfach, auf nicht initialisierte Array-Elemente zuzugreifen, weil man denkt, dass es sich um gültige Werte handelt.
"Lokale Variable" bezieht sich auf die normalen Variablen, die innerhalb einer Funktion deklariert sind. C ++ - Puristen nennen diese automatischen Variablen tatsächlich, um sie von statischen Variablen zu unterscheiden.
Glücklicherweise kann ein kleines Array zu dem Zeitpunkt initialisiert werden, zu dem es mit einer Initialisierungsliste deklariert wird. Das folgende Code-Snippet zeigt, wie das gemacht wird:
float floatArray [5] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};
Dies initialisiert floatArray [0] auf 0, floatArray [1] auf 1, floatArray [2] auf 2. 0 und so weiter.
C ++ füllt die Initialisierungsliste mit 0s auf, wenn die Anzahl der Elemente in der Liste kleiner als die Größe des Arrays ist. In der Tat kann eine leere Initialisierungsliste verwendet werden, um ein Array auf 0 zu initialisieren:
int nArray [128] = {}; // Array auf alle Nullen initialisieren
Die Anzahl der Initialisierungskonstanten kann die Größe des Arrays bestimmen. Sie könnten zum Beispiel bestimmt haben, dass floatArray fünf Elemente enthält, indem Sie einfach die Werte innerhalb der geschweiften Klammern zählen. C ++ kann auch zählen (hier ist mindestens eine Sache, die C ++ für sich selbst tun kann).
float floatArray [] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};