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.