Hallo und herzlich willkommen.
In diesem Vortrag möchte ich sprechen über das Initialisieren eines Arrays.
Wir wissen, wie man ein Array benutzt, Wir wissen, wie man ein Array erstellt.
Aber speziell, was ist, wenn Sie wollen Wie machen Sie das, um dem Array
bestimmte Anfangswerte zuzuweisen?
Sie möchten also eine Initiale zuweisen Werte für die Elemente Ihres Arrays
die meiste Zeit.
Der Grund, den Sie wollen Das Zuweisen von Anfangswerten zu einem
Array oder sogar zu Variablen liegt daran, dass Es macht es einfacher zu erkennen,
wenn etwas schief geht.
Wenn Sie keine Anfangsdaten haben Wenn Sie versuchen, etwas zu tun, können Sie
Probleme in Ihrem Programm verursachen.
Die Initialisierung ist also sehr gut und du willst es immer tun.
Und mit einem Array gibt es viele, viele Elemente im Array.
Und so gibt es einen bestimmten Weg Sie können diese Elemente initialisieren.
Da ist anders Syntax, die Sie verwenden können.
Aber die Initialisierung ist eine gute Sache und du willst es immer tun.
Ich wollte schnell darüber reden, wie Sie können ein Array erstellen, da
es verschiedene Möglichkeiten gibt.
So wie Sie Initiale zuweisen können Werte zu Variablen, wenn sie
deklariert sind, können Sie auch zuweisen Anfangswerte für die Elemente
eines Arrays, wenn es deklariert ist.
Um die Werte eines Arrays zu initialisieren, müssen Sie Geben Sie einfach die Werte in einer Liste an.
Die Liste wird durch Kommas getrennt und die gesamte Liste ist in
einem Paar geschweifter Klammern eingeschlossen.
Es sieht ungefähr so aus.
Hier erstellen wir eine Array mit dem Namen Zähler.
Es ist vom Typ int, es hat 5 Elemente.
Und was wir dann tun, sind wir haben die geschweiften Klammern
und wir verwenden hier keine Indizes.
Sie werden feststellen, dass wir nur haben durch Kommas getrennte Zahlen.
Was dies tut, ist die Einstellung Alle 5 Elemente im Zählerarray auf
0, jedes der Elemente ist 0.
Wenn wir ein anderes Array haben und wir benennen Dieses Array ist ganzzahlig und hat auch
die Größe 5 und dann haben wir es in unserem geschweifte Klammern
nach dem Zuweisungsoperator 0 Komma 1 Komma 2 Komma 3 Komma 4, was macht das?
Es wird die erste Ganzzahl zugewiesen Element Ganzzahlen Array auf 0,
das zweite Element auf 1, das dritte Element zu 2, das vierte Element zu 3 und
das fünfte Element zu 4.
Es ist eine schöne Syntax, wo Sie können Initialisieren Sie das Array sofort, wenn
Sie es deklarieren, indem Sie es einfach bereitstellen Zahlen durch Kommas in Klammern getrennt
und Sie möchten dies tun.
Es ist auch nicht notwendig, vollständig Initialisieren Sie das gesamte Array.
Also in diesen 2 vorherigen Beispiele haben wir alle 5
Elemente eines Arrays der Größe 5 initialisiert.
Was ist, wenn Sie nur wollen einige der Werte initialisieren?
Wenn Sie Anfangswerte angeben das ist nicht gleich der Zahl der Größe des Arrays, dann die Die verbleibenden Werte werden auf 0 gesetzt.
Also, wenn Sie so etwas tun Hier haben Sie
ein Array namens Beispieldaten vom Typ Flow enthält es 500 Elemente.
Aber in den geschweiften Klammern alle Sie sehen hier sind unsere 3 Elemente.
Was dies tun wird, ist Es werden
die ersten 3 Werte der Stichprobe initialisiert Datenarray auf 100 300 500. 5.
Und dann die restlichen 5 497 Elemente werden 0 sein.
Also musst du nicht alles angeben.
Es gibt auch dieses Konzept eines bestimmten Initialisierers.
Dies wurde eingeführt, glaube ich an C99.
Es ist eine nette kleine Funktion, wo Sie Sie können Ihre Elemente auswählen,
die Sie initialisieren möchten.
Ich denke in C99 haben sie es hinzugefügt und dann machten sie es in C11 optional.
Also je nachdem welcher Compiler Sie haben, Sie können oder können nicht in der
Lage sein, dies zu tun.
Aber ich möchte es erwähnen weil es etwas üblich ist.
Einige Compiler erlauben dies nicht Sie tun dies nach C99.
Aber es ist cool, weil du kannst eigentlich nur auswählen und auswählen.
Sie können also ein Element einschließen Nummerieren Sie in zwei Klammern und geben Sie dann die
Array-Elemente an Das kann initialisiert werden und Sie können es
in beliebiger Reihenfolge tun.
Hier ist ein Beispiel.
Wieder haben wir unser Beispieldatenarray.
Es ist vom Typ float.
Es wird 500 groß sein.
Aber hier in unserem lockigen Klammern haben wir zusätzliche Indizes.
Wir haben unsere Klammern in 2, sagt Klammern 2 sub-2 entsprechen 500. 5, Sub-1 entspricht
300. 0 und sub-0 sind gleich 100. 0.
Sie sind durch Kommas getrennt.
Alles, was dies tut, ist es zu spezifizieren das gleiche wie im vorherigen Beispiel,
aber es ist mache es in einer anderen Reihenfolge.
Aber du wirst es immer noch tun haben Elemente 0 oder das erste
Element gleich 100, das zweite Element gleich 300 und das dritte Album
gleich 500. 5.
Aber wir spezifizieren die Welcher Index muss in den geschweiften
Klammern initialisiert werden?
Ein weiteres Beispiel hier haben wir eine int Array namens arr, es hat die Größe 6.
Und wenn wir es erklären, sind wir es Initialisieren des
fünften Elements, das das letzte Element ist, auf 212, Alle Elemente werden 0 sein.
Hier ist ein Beispiel für traditionelles Initialisierung, bei der Sie nur den
Namen Ihres Arrays und deklarieren Sie liefern viele verschiedene Nummern.
In diesem Beispiel deklarieren wir ein Array und es werden
alle Tage in jedem einzelnen Monat gespeichert.
Und wenn wir das durchmachen Array und wir drucken
es aus, was sehr häufig ist, verwenden Sie normalerweise Schleifen, um Elemente im Array
auszudrucken oder zumindest zu durchlaufen.
Was wir hier machen, ist, dass wir es sind Ich werde jeden Monat ausdrucken
und wie viele Tage es hat.
Lassen Sie uns dies im Code durchgehen Blöcke, um Ihnen die Ausgabe zu zeigen.
Hier ist unser Beispiel.
Wir haben Tage und Monate und Wir initialisieren das Array.
Das erste Element zu sein 31, nächste 28, nächste 31.
Sie bemerken auch in Zeile 10, wir sind Verwenden einer Definition, um eine Konstante zu erstellen.
Und übrigens in c können Sie auch Verwenden Sie ein konstantes Schlüsselwort, über das wir sprechen werden,
und andere Dinge, das ist eine andere Möglichkeit, Konstanten zu erstellen.
Aber im Moment reden wir nur über
Arrays und deren Initialisierung, sehr einfach zu machen, getrennt durch Kommas in geschweiften Klammern.
Also, was wird das anzeigen wird
es durch das Array gehen und es wird schauen Index plus 1 und dann Tagesindex.
Es wird also Monat 1 heißen hat wie viele Tage abhängig von den
Werten.
Wir greifen also auf den Index zu durch den Arraynamen und dann den tiefgestellten
Wert, den Index Wert und wir verwenden ein Array.
Es ist also eine Variable, die ändert sich durch jede Iteration.
Also versuchen wir das zu machen.
Die Ausgabe, zu der Sie gehen werden siehe ist Monat eins hat 31 Tage, Monat 2 hat 28 Tage
Art repräsentiert Januar Februar März April, aber es geht nur durch die
Array und druckt die Tage aus.
Das beweist also, dass die Initialisierung funktioniert.
Und wieder wirst du wollen um Ihre Daten zu initialisieren.
Lassen Sie uns jetzt über einen anderen sprechen Beispiel und sprechen Sie über
das Wiederholen von Initialisierungselementen.
Hier wäre also ein weiteres Beispiel: In diesem Beispiel verwenden
wir jedoch einen bestimmten Initialisierer.
Wir werden das genaue angeben Elemente, die wir initialisieren möchten.
Also die Hauptlinie, die Sie sollten Beachten Sie hier ist
derjenige, der in Tage und Monate sagt, wo Wir machen unsere Initialisierung.
Sie werden es in der Locke
bemerken Klammern, dass das erste Element 31 bekommt, das zweite 28, aber dann gibt
es Etwas in Klammern, das 4 sagt, wird den Wert 31 erhalten.
Dann haben wir ein Komma, Element 5 wird 30 bekommen,
Element 6 wird 31 bekommen.
Und dann haben wir 1.
Das heißt, wir werden es jetzt tun Überschreiben Sie die 28, und wir werden tatsächlich eine
29 setzen, setzen Sie es als 29.
Also ist es hier irgendwie überflüssig.
Das müssen wir nicht wirklich tun, aber Sie
würden wirklich die Sub-1 entfernen, weil 31 und 28, hier ist bereits sub-1 zugeordnet.
Aber es sieht so aus, als würden wir sagen Sub-1 kann auch Wert 29 sein.
Das ist also nur die bezeichnete Initialisierer.
Was ist, wenn wir wollen? Wiederholen Sie den gleichen Wert.
Jetzt in c können Sie immer Initialisieren Sie das gesamte Array
mit demselben Wert, wenn Sie 0 angeben.
Sie können jederzeit initialisieren Es ist wie der Null-Parameter.
Aber anders als das tut c es nicht Stellen Sie Verknüpfungsmechanismen zum
Initialisieren des Arrays bereit Elemente, zumindest nicht in C89.
Sie können in C11 wieder sehen, wo Sie kann den gleichen Wert für das gesamte
Array nur mit den Klammern initialisieren ohne Index nur die Nummer.
Aber gerade jetzt in C89 und C99 gibt es Keine Möglichkeit, eine Wiederholungsanzahl anzugeben.
Es gibt keine Möglichkeit, alle Elemente zu sagen von diesem Strahl sollte zum Beispiel 55 sein.
Also wenn es anfangs gewünscht wäre Setzen Sie alle 500
Werte der Probendaten auf 1, alle 500 hätten explizit zugewiesen zu werden, was ein großer
Schmerz im Hintern wäre.
Am Ende werden Sie es also tun Legen Sie sie einfach in eine Schleife.
Einfachste Möglichkeit zum Iterieren Verwenden Sie durch ein Array eine Schleife.
Hier ist ein kurzes Beispiel dafür wie Sie alle Elemente auf den
gleichen Wert initialisieren können.
In diesem Fall sind wir es jedoch Initialisieren
der ersten Elemente auf 0 1 4 9 und 16.
Das ist also wirklich nur eine Initialisierung alle verbleibenden Elemente auf einen Wert.
Im Wesentlichen das 6. Element der 10. Element mit Index 5 bis 9.
Genau das macht diese for-Schleife.
Die erste for-Schleife sagt das Wir werden Elemente von 5 bis 9 so
initialisieren, dass sie I mal I sind.
Und dann die zweite für Schleife hier, es sollte
eingerückt sein, es ist schwerer zu lesen.
Die zweite for-Schleife ist tatsächlich Durchlaufen des gesamten
Arrays und Anzeigen der Daten an Zeigen Sie, dass die letzten 5
Werte tatsächlich initialisiert wurden.
Also wann immer Sie wiederholen möchten Verwenden Sie einfach eine Schleife, um denselben Wert
zu erhalten oder auf unterschiedliche Werte zu initialisieren.
Auch hier ist die Initialisierung wichtig.
Sie möchten also initialisieren Stellen Sie sicher, dass diese Syntax für Sie selbstverständlich ist, da
wir dies tun werden Verwenden Sie Arrays ziemlich oft in c.