Hallo und herzlich willkommen.
In dieser Vorlesung möchte ich sprechen über mehrdimensionale Arrays.
Bis zu diesem Punkt, wenn Sie haben Wenn Sie an ein Array denken, haben Sie gerade
gesagt, dass ein Array eine Variable ist, die kann viele Arten von Daten speichern.
Es kann komplizierter werden.
Sie können im Grunde viele haben Dimensionen eines Arrays.
Wenn Sie also nur ein lineares Array haben Was wir bisher besprochen haben, nennt
man eine einzige Dimension.
Und wir wissen, dass es eine Single ist Dimension, weil
es nur eine Klammer mit einer Größe hat.
Die Sprache c erlaubt Arrays von jeder zu bestrafenden Dimension.
Das ist also eine Art Gedanke wie ein verschachteltes Array, ein Array eines Arrays.
Also zweidimensionale Arrays sind die häufigsten.
Aber du kannst es tatsächlich tun dreidimensionale
Arrays, vierdimensionale Arrays, fünfdimensionale Arrays, aber es gibt nicht viele
Anwendungsfälle für 3 4 und 5.
Wirklich, du wirst es entweder tun haben ein eindimensionales Array,
das Sie in Ihrem Programm verwenden oder zweidimensionales Array.
zweidimensionale Arrays sind üblich weil sie im Wesentlichen
Zeilen und Spalten in einer Tabelle darstellen, Auf diese Weise können
Sie es oder eine Matrix oder eine Tabelle visualisieren.
Das ist eine zweidimensionale Anordnung, Sie haben Zeilen und Sie haben Spalten.
So können Sie mehr Daten speichern als ein
eindimensionales Array durch Angabe der Größen.
Aber es ist sehr anwendbar weil es aussieht wie eine Matrix.
Und es gibt Anwendungen, die Vielleicht möchten Sie schreiben, das speziell dieses Konzept
einer Matrix hat Eine mathematische Anwendung wäre
hier am relevantesten.
Aber Sie können verwenden, um zweidimensional zu tun Arrays für viele verschiedene Dinge.
Ein Beispiel ist eine Matrix.
Stellen Sie es sich aber auch hier als Tabelle vor.
Zweidimensionale Arrays sind deklariert genauso wie
ein eindimensionales Array.
Der einzige Unterschied ist jetzt du habe einen anderen Satz von Klammern.
In diesem Beispiel erklären wir also Ein Array mit dem Namen Matrix vom
Typ int mit 4 Zeilen und 5 Spalten.
Das heißt, Sie können 20 Elemente speichern innerhalb dieses zweidimensionalen Arrays.
Sie sollten also wissen, wie jeder Die Abmessung wird mit
einem eigenen Paar eckiger Klammern angegeben.
So können Sie leicht erkennen Wie viele Dimensionen hat ein Array?
Wenn Sie dort 3 Klammern hatten, das wäre ein dreidimensionales Array.
Wenn Sie 4 haben, wäre es vier.
Dieser hat 2, also ist es 2.
Und bis zum früheren Vorlesungen hatten nur eine, also wussten wir, dass dies
eine einzige Dimension war.
Schauen Sie sich also die Klammern an. achte darauf.
Wieder 4 Zeilen, 5 Spalten, Insgesamt 20 Elemente.
Um ein zweidimensionales Array zu initialisieren, Es wird auf die gleiche Weise
eindimensional initialisiert Array, dieselbe Art von Syntax, Sie werden nur
mehr hinzufügen.
Also, wenn Sie die Elemente auflisten Zur Initialisierung werden die
Werte zeilenweise aufgelistet.
Und der Unterschied hier ist der Wenn Sie
die Anfangswerte für jede Zeile eingeben, werden Sie dies tun es zwischen geschweiften Klammern, geschweiften Klammern
und dann werden Sie einschließen alle Reihen zwischen geschweiften Klammern.
Also wird es aussehen etwas wie das.
Wenn wir ein Array von Zahlen erstellen, Das ist von 2 Dimensionen,
3 Zeilen und 4 Spalten und wir wollen Initialisieren Sie es, alles was Sie
tun müssen, ist in geschweifte Klammern zu setzen das gesamte Array und fügen Sie dann für jede Zeile
innere verschachtelte geschweifte Klammern hinzu.
Hier initialisieren wir also Werte 0 sub-0 bis 10, 0 sub-1 bis 20, 0 sub-2 bis 30
und 0 sub-3 bis 40.
Und so greifen Sie zu auch mehrdimensionale Arrays.
Sie greifen mit ihnen zu die Zeile in der Spalte.
Du musst dich nur erinnern dass es 0 basiert.
Also die obere linke Hand welche wäre Zeile 1 Spalte 1 wäre 00 und das
wäre gleich 10.
Zeile 1 Spalte 2 wäre gleich 20, aber Sie würden
als Nummer 0 unter 1 darauf zugreifen.
Weil das erste Array 3 enthält Zeilen, auf die Sie zugreifen, ist die Nummer, die Sie für die Zeilennummer und angeben
dann ist die Spaltennummer die nächste Spezifikation für den
Zugriff auf das Array.
Aber Individualisierung ist hübsch Einfach, trennen Sie die
Dinge einfach durch Kommentare in Klammern.
Und wenn Sie darauf zugreifen, würden Sie darauf zugreifen Es ist so, als würden Sie auf ein normales
Array zugreifen, nur dass Sie jetzt darauf zugreifen dieses Konzept einer Zeile in einer Spalte.
Also die Verwendung der inneren Paare von Klammern sind eigentlich optional, sollten jedoch aus
Gründen der Lesbarkeit verwendet werden.
Wenn Sie diese Zahnspange nicht bereitgestellt haben, Sie könnten
tatsächlich nur 10 20 30 40 15 25 35 bereitstellen, alles nur nacheinander, aber es ist sehr schwer zu visualisieren,
was Sie initialisieren.
Als Programmierer ist Lesbarkeit sehr, sehr wichtig, weil es die Qualität des Codes
erhöht Es ist einfacher, den Code zu pflegen.
Wenn ich mir das hier ansehe, Insbesondere anhand der Kommentare kann
ich leicht erkennen, was ich bin Initialisieren auf, auf welche Werte und auf
welche Zeilen wird initialisiert.
Wenn ich das als einzelne Zeile hätte Nur fortlaufende Zahlen, ich würde
sehr schnell verloren gehen.
Also obwohl die inneren Klammern sind nicht notwendig, verwenden Sie sie.
Wie bei einem eindimensionalen Array Es ist nicht erforderlich, dass das
gesamte Array initialisiert wird.
Sie können nur bestimmte Bereiche initialisieren.
In diesem Beispiel sind wir also Erstellen eines zweidimensionalen Arrays mit
4 Zeilen und 5 Spalten.
Wir initialisieren nur das Die ersten 3 Elemente jeder Zeile.
Zeile 1 Spalte 1 ist also 10, Zeile 1 Spalte 2 ist 5 und Zeile 1 Spalte 3 ist eine negative 3
und das gleiche gilt für die zweite
Spalte und so weiter 900 32 31 008.
Für diejenigen, die wir nicht eingestellt haben die 4. und 5.
Werte jeder Zeile, die tatsächlich gehen automatisch auf 0 gesetzt werden, weil wir sie
weggelassen haben.
Und in diesem Fall Sie tatsächlich müssen die geschweiften
Klammern bereitstellen, die inneren.
Denn hier, wenn wir es taten es wäre
die Initialisierung alles vermasselt.
Denn wenn du es nicht hättest die geschweiften Klammern, es
würde es nur nacheinander tun.
Was also passieren würde, ist
dies würde tatsächlich die ersten 12 Elemente initialisieren.
Also würde es alle initialisieren Elemente in der ersten Reihe, alle Elemente in der zweiten
Reihe und dann die ersten 2 Elemente in der dritten Reihe und
dann den Rest der Elemente In der dritten Reihe wäre der Rest der
Elemente in der vierten Reihe 0.
Auch dies ist zweidimensional Array von 4 Zeilen und 5 Spalten.
Es würde sie nur nacheinander tun.
Vergessen Sie also nicht die Zahnspange, wenn Sie sind,
wenn Sie nur bestimmte Initialisierungselemente angeben möchten.
Sie können auch tun bezeichnete Initialisierer.
Denken Sie daran, dies ist das C99-Konzept.
Das ist optional in C11 wo Sie können
bestimmte Indizes angeben, die initialisiert werden sollen.
Sie können also Indizes in der Initialisierungsliste, genau wie in einem
eindimensionalen Array, wenn Sie möchten Um einen bestimmten Initialisierer zu erstellen, würden Sie
einfach so etwas tun.
Hier deklarieren wir also unsere Matrix Array von 4 Zeilen und 3 Spalten, aber wir spezifizieren tatsächlich
dass 0 0 gleich 1 ist, 1 1 gleich 5 ist und 2
2 gleich 9 ist.
Also, wenn wir noch einmal 2 2 sagen, was? Wir sagen, es ist Zeile 2, was wirklich
Zeile 3 ist, weil wir bei 0 beginnen. Spalte 2, die wirklich Spalte 3 ist.
Stellen Sie sich dies erneut als vor eine Tabelle oder eine Tabelle.
Und der Zugriff auf die Elemente beginnt in der oberen linken Ecke.
Aber wenn du das verstehst 4 steht für die Zeilen
und 3 für die Spalten danach ziemlich intuitiv.
Also, was das tut, ist es Initialisieren der 3 angegebenen Elemente
der Matrix auf angegebene Werte.
Aber was solltest du? Beachten Sie hier die Syntax.
Alle nicht spezifizierten Werte hier werden standardmäßig 0 sein.
Das geht also nur 3 Werte zu initialisieren.
Jeder Satz der Werte, die Sie Bei der Initialisierung werden die Elemente
in einer Reihe zwischen geschweiften Klammern angezeigt.
Und dann die gesamte Initialisierung geht zwischen einem anderen Paar Zahnspangen.
Sie sehen also, dass wir die haben geschweifte Klammern an den äußeren wie
bei der normalen Initialisierung und dann haben wir die Klammern, um
auf das Array im Inneren zuzugreifen.
Und dann haben wir Kommas zu Trennen Sie jede Zeile und jeder Satz von
Zeilenwerten wird getrennt vom nächsten Satz durch ein Komma.
Die Werte werden also getrennt und auch die Zeilenindizes.
Jetzt nur, weil wir das gesagt haben Wir haben zwei Dimensionen
und wir haben darüber gesprochen. Sie können haben tatsächlich viele andere Dimensionen.
Alles, worüber ich gesprochen habe 2 Dimensionen gelten auch für
3 Dimensionen 4 Dimensionen 5 Dimensionen.
Also, wenn Sie a deklarieren wollten
3-dimensionales Array, Sie würden es mit 3 eckigen Klammern tun.
Hier ist also ein Array mit dem Namen box vom Typ int von 10 20 und 30.
Vielleicht möchten Sie eine verwenden
dreidimensionales Array vielleicht, wenn Sie xyz-Werte irgendeiner Art gespeichert haben, Sie werden dies wahrscheinlich nicht tun müssen.
Dreidimensionale Arrays und up sind wirklich nicht üblich.
Zusammenfassend können Sie a eindimensionales Array als
Datenzeile, einzelne Zeile, zweidimensional Array als Tabelle eine Matrix
oder Tabelle, in einer dreidimensionalen Array können Sie als Stapel von Datentabellen
visualisieren, also als Stapel von Tabellen.
Wenn Sie so viele Daten benötigen, Es wird sehr schwer
sein, darauf zuzugreifen und wahrscheinlich verwirrend.
Und jeder, der das aufrechterhält Programm für ein dreidimensionales
Array oder höher, es geht wahrscheinlich um sich zu
verirren und herauszufinden, was los ist, aber Sie können es tun wieder und wenn Sie
jemals eines dieser Elemente durchlaufen müssen Bei einem, zwei, dreidimensionalen Arrays werden Sie
wahrscheinlich eine Schleife verwenden.
Und je mehr Dimensionen du hast in der Schleife, je mehr verschachtelte Schleifen
Sie haben werden.
Also, wenn Sie a verarbeiten möchten dreidimensionales Array, Sie werden
3 verschachtelte Schleifen haben.
Und wenn Sie a verarbeiten möchten Vierdimensionales Array, Sie
werden 4 verschachtelte Schleifen haben.
So weit wie das Initialisieren eines Arrays das ist höher als 2 Dimensionen, wieder werden
Sie anwenden das gleiche, du wirst es nur
ein bisschen erweitern.
Also ein dreidimensionales Array wird 3
Ebenen von verschachtelten Klammern mit der inneren Ebene haben Enthält eine
Reihe von Initialisierungswerten für jede Zeile sieh so aus.
Hier haben wir eine dreidimensionale Array, 2 3 und 4, im Wesentlichen ein
Stapel von Datentabellen.
Und der erste Block von 3 Reihen, Wir
werden initialisieren und den zweiten Block mit 3 Zeilen Wir werden initialisieren.
Also, was das sagt, ist wieder erster Block und zweiter Block, weil wir nicht initialisiert haben
der dritte und der vierte Block, nur der erste
und der zweite.
Wir haben also 4 Blöcke und Sie Ich kann mir als jeden Block
einen Stapel von Datentabellen vorstellen Block mit Zeilen und Spalten.
Also wird der erste Block sein Initialisieren Sie nur die ersten 3 Zeilen.
Wir haben nur 3 Zeilen.
Und dann geht der zweite Block um die nächsten 3 Zeilen zu initialisieren, aber den dritten
und den vierten Block werden nicht initialisiert.
Wenn Sie das initialisieren möchten Im
dritten und vierten Block hätten Sie mehr innere Zahnspangen. geschweifte Klammern und so weiter.
Gleiches gilt jedoch für die diejenigen, die Sie nicht
initialisieren, werden auf 0 initialisiert.
Aber auch hier können Sie sehen, wie es wird sehr langweilig
und auch sehr schwer zu folgen.
Wenn Sie die Elemente verarbeiten möchten Ich erwähnte, dass Sie in einem
dimensionalen Array verschachtelte Schleifen verwenden werden.
Wieder wird es korrespondieren direkt auf die Anzahl der Dimensionen.
Und jede Schleife wird Iterieren Sie über eine Array-Dimension.
Also wird es aussehen etwas wie das.
Dies ist ein Beispiel für a dreidimensionales Array.
Sie haben eine äußere Schleife und dann hast du 2 innere Schleifen.
Die äußere Schleife wird die sein erste äußere Anordnung, so dass die äußere Schleife im Wesentlichen durchlaufen würde In den Zeilen geht
die zweite durch die Spalten und die dritte
man wird durch die Blöcke gehen.
Wieder, was Sie bemerken sollten ist wow, das wird
sehr haarig und sehr langweilig, sehr schnell.
Versuchen Sie also, dreidimensional zu vermeiden vierdimensionale Arrays und ich sehe nicht
einmal viele Verwendung Fälle dafür, eins und zwei sind wirklich
alles, was Sie verwenden werden.
Aber mehrdimensional verstehen Arrays sind eine Möglichkeit in c, um mehr Daten zu speichern und
darauf zuzugreifen der gleiche Name mit vielen Datenelementen. Vielen Dank.