>> Sprecher 1: Lassen Sie uns ein Programm schreiben, dass fragt den Benutzer nach dem Namen und
Häuser von drei Studenten.
Nun, um diese Namen zu speichern und Häuser wir nutzen konnten, was, sechs Variablen.
Drei Saiten für die Namen, und ein anderer drei Saiten für die Häuser,
aber wir wissen bereits, dass wir aufräumen , dass Code, der von der Verwendung von Arrays statt,
zum Beispiel ein Array der Größe 3 für die drei Namen, und eine andere Reihe von
Größe 3 für die Häuser.
Aber es stellt sich heraus, das können wir aufräumen noch weiter, und tatsächlich ziehen
Namen und Häuser zusammen, so dass eine der Name des Studenten und sein Haus
irgendwie gekapselt, so zu sprechen in der gleichen Variablen.
>> Um dies zu tun, obwohl, wir müssen erklären, unsere eigenen Datentyp, unsere eigene Art in C,
dass die Autoren der C nicht unbedingt denken von Jahren.
Um dies zu tun, können wir das Schlüsselwort typedef, zusammen mit der
andere Schlüsselwort struct.
Lassen Sie uns einen Blick.
Innerhalb von structs.h, habe ich bereits Gestartet bekommen
einschließlich der CS50-Bibliothek.
Ich werde nächste typedef struct geben, und dann eine geschweifte Klammer.
Innerhalb der Struktur, ich werde angeben, dass ein Schüler müssen einen
String Name genannt, und ein anderer String namens Haus.
Ich werde dann schließe meine geschweiften Klammern, und angeben, dass der Name des
Diese neuen Datentyp sind Schüler.
In anderen Worten, über diese Syntax habe ich erklärt ein neuer Datentyp von meinem eigenen
, die nicht vor einem Augenblick noch nicht gab, und innerhalb dieses Datentyps sind zwei Daten
Felder oder Datenelemente, nannte Namen, sogenannte Haus, die beide
sind vom Typ String.
>> Lassen Sie uns nun diese Art in einer tatsächlichen Programms.
In structs0.c, habe ich ähnlich geworden mich schon mit einigen gestartet
Standardcode, und ich bin jetzt gehen, um diese Daten verwenden
Typ Student, wie folgt.
Ich bin zuerst zu erklären, ein Array vom Typ Student, werde ich
rufen Sie die Array-Studenten -
Plural -
und ich werde angeben, dass ihre Größe werden drei, die Ankündigung, der Wert ist
die konstanten STUDENTEN -
in allen Hauptstädten -
dass ich hier erklärt, früher in der Datei.
Lassen Sie uns nun über diese drei laufen Studenten, und fordert den Benutzer auf,
ihre Namen und Häuser.
>> für int i 0 erhalten, weniger ist i als die Konstante, i + +.
Und nun innerhalb des Körpers von diesem für Schleife, werde ich etwas ausdrucken
wie der Name des Studenten.
Ich werde dann tatsächlich bekommen, dass der Name des Studenten durch die Angabe
Studenten Halterung I.
Mit anderen Worten: Ich will das i-te Schüler in das Array namens Studenten, aber jetzt
Ich möchte an dieser i-ten Schüler erhalten nennen, und dies zu tun, werde ich nutzen
die. Betreiber, um an eine bekommen bestimmten Bereich innerhalb der Struktur.
Also ich angeben Studenten Halterung I. Name bekommt den Rückgabewert der GetString ().
In der Zwischenzeit werde ich ausdrucken etwas ähnliches, sagen Studenten
Haus, und jetzt werde ich angeben dass die Studenten Haus Feld i-ten
wird der Rückgabewert erhalten ein weiterer Anruf auf GetString ().
>> Nun wollen wir etwas tun, mit diesen drei Schülernamen und Häuser,
etwas einfach wie Drucken jeweils in einem Satz.
für int i 0 erhalten, wieder weniger als i Studenten, i + +, printf "% s in% s.
Backslash-n ", und jetzt lassen Sie mich stecken die Werte dieser zwei Felder,
Studenten Halterung I. Name, Komma, Studenten Halterung I. Haus, in der Nähe
paren, Semikolon.
>> Und jetzt muss ich noch eine Sache zu tun.
Am Ende dieser Datei, muss ich den Speicher frei, der zugewiesen wurde
hinter den Kulissen von GetSring (), die Natürlich ruft malloc, um
reservieren Speicher für die Saiten der Benutzer.
Aber dies ist einfach.
für int i 0 erhalten, weniger als i Studenten, i + +, und im Inneren des Körpers
Diese for-Schleife, ich bin einfach da, um Studenten bieten kostenlose Halterung i. Name,
und Studenten kostenlos Halterung I. Haus.
>> Nun, wir haben eindeutig verwendet drei for-Schleifen in diesem Programm, wenn ich wirklich
könnte gerade benutzt haben, aber dies ist nur zu Demonstrations willen, so dass
können wir in drei verschiedenen angeben Schritte, was genau wir tun.
Wir sind zuerst immer einen Namen und ein Haus für jeden der Schüler, wir sind dann
Ausdruck der Name und das Haus für jeder der drei Studenten, und
dann werden wir um den Speicher frei durch jeden der Studierende verwendet.
Aber sicherlich haben wir kombinieren diese in eine größere for-Schleife.
>> Lassen Sie uns nun speichern, übersetzen, und führen Sie dieses Programm.
Strukturen machen 0. / Strukturen 0, Schüler zu nennen, lassen Sie uns zur Verfügung stellen David, wird er leben
in Mather House, der Name des Studenten, lassen Lauren sagen, wird sie in Leverett leben
House, der Name des Studenten, Rob, werde er leben in Kirkland House.
Und tatsächlich ist in David Mather, Lauren ist in Leverett,
und Rob ist in Kirkland.