1 00:00:00,000 --> 00:00:02,670 >> [Titelmusik] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> Sprecher 1: Hallo, alle zusammen. 4 00:00:13,365 --> 00:00:14,365 Willkommen zurück in Abschnitt. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 Lovely day out-- weshalb bin ich Sicher, es gibt nur vier von euch hier 7 00:00:18,700 --> 00:00:21,180 und nicht unsere übliche Packung. 8 00:00:21,180 --> 00:00:22,670 Ich war krank an diesem Wochenende. 9 00:00:22,670 --> 00:00:24,294 Also ich habe keine Starburst für euch. 10 00:00:24,294 --> 00:00:26,400 Und ich kann anfangen zu husten furchtbar überall diese. 11 00:00:26,400 --> 00:00:27,790 Also einfach mit mir tragen. 12 00:00:27,790 --> 00:00:30,624 Ich werde wirklich versuchen und durch diese erhalten erste, 13 00:00:30,624 --> 00:00:32,290 aber bevor ich einen Hustenanfall. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 Aber nur einfach auf mich ein sein wenig bit-- das ist alles, frage ich. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Also unsere Agenda für today-- nur reminder-- Ihr Quiz ist nächste Woche. 18 00:00:44,289 --> 00:00:46,830 Ich sagte Ihnen, diese letzte Woche, damit es würde nicht fangen Sie unvorbereitet. 19 00:00:46,830 --> 00:00:47,954 Also bin ich wieder daran erinnert. 20 00:00:47,954 --> 00:00:49,180 Nächste Woche Ihres Quiz. 21 00:00:49,180 --> 00:00:52,730 Zu diesem Zweck nächste Woche Abschnitt wird viel mehr sein 22 00:00:52,730 --> 00:00:55,180 von-- Ich werde versuchen, Arbeit in irgendeiner Bewertung. 23 00:00:55,180 --> 00:00:58,130 Also, wenn euch könnte helfen Sie mir, indem Sie mir 24 00:00:58,130 --> 00:01:00,990 Dinge, die Sie bequem mit, dass Sie sich Sorgen machen, 25 00:01:00,990 --> 00:01:03,530 Themen, die Sie für möchten mich zu decken, dass wäre toll. 26 00:01:03,530 --> 00:01:05,740 So kann ich versuchen und arbeiten sie in unserer Sektion der nächsten Woche 27 00:01:05,740 --> 00:01:11,540 oder zusätzliches Material oder prep senden Ihnen dass Sie nicht an anderer Stelle bekommen könnte. 28 00:01:11,540 --> 00:01:12,150 >> Yeah! 29 00:01:12,150 --> 00:01:13,520 Mehr Menschen kommen! 30 00:01:13,520 --> 00:01:17,320 Ich dachte, ich habe zu tun, dass schlecht letzten Woche, dass niemand will zurückkommen? 31 00:01:17,320 --> 00:01:18,065 Ich habe Angst. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 So dass die anderen drei Dinge dass wir gehen, gehen über 34 00:01:21,100 --> 00:01:24,850 sind Umleitung, Datei-I / O und dann Zeiger und dynamische Speicher. 35 00:01:24,850 --> 00:01:29,160 Ich bin sicher, du bist alles super aufgeregt über pointers-- locker Thema 36 00:01:29,160 --> 00:01:31,310 so einfach zu verstehen. 37 00:01:31,310 --> 00:01:33,130 Ich bin sicher, euch alle haben, oder? 38 00:01:33,130 --> 00:01:39,510 >> Also das Wichtigste zuerst, redirection-- Dies ist im Grunde nur eine Möglichkeit 39 00:01:39,510 --> 00:01:42,920 zu steuern, wie Sie Eingabe Dinge in Ihr Programm, 40 00:01:42,920 --> 00:01:44,606 wie Sie Ausgabe Dinge aus Ihrem Programm. 41 00:01:44,606 --> 00:01:46,980 Die wichtigsten Möglichkeiten, wie Sie Jungs haben mit ihm interagiert worden 42 00:01:46,980 --> 00:01:51,650 ist nur durch die Standardausgabe mit dem Druckbild hier. 43 00:01:51,650 --> 00:01:55,940 Aber es gibt Möglichkeiten, pipe-- wie wir hier sehen, 44 00:01:55,940 --> 00:01:58,980 ist eines unserer Wörter des Art von Rohr, das Informationen 45 00:01:58,980 --> 00:02:02,850 oder die Daten in einer Datei von einer Datei. 46 00:02:02,850 --> 00:02:05,820 Es ist nur verschiedene Möglichkeiten, Getting Things in Ihr Programm 47 00:02:05,820 --> 00:02:10,681 und aus Ihrem Programm, statt nur auszudrucken, um diesen Bildschirm 48 00:02:10,681 --> 00:02:12,430 oder Eingeben Dinge von der Kommandozeile. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> Also zuerst ein wenig ist größer als Caret. 51 00:02:18,030 --> 00:02:22,085 So output-- er druckt nur die Ausgabe in eine Datei statt auf dem Bildschirm. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 Also, wenn Sie etwas, das gedruckt hatte "Hallo, Welt!" den Bildschirm, 54 00:02:29,500 --> 00:02:32,400 wenn Sie es nennen, statt um output.text, dass 55 00:02:32,400 --> 00:02:35,220 erstellt diese Datei namens output.text. 56 00:02:35,220 --> 00:02:38,550 Und wenn Sie es öffnen, wird es sagen: "Hallo, Welt!" drin. 57 00:02:38,550 --> 00:02:41,410 Dies kann super nützlich sein wenn Sie eine Tonne von Störungen haben 58 00:02:41,410 --> 00:02:43,430 tatsächlich, wie wir sehen in dieser. 59 00:02:43,430 --> 00:02:46,810 Wenn Sie zwei Caret tun, werden sie drucken Sie die Fehlermeldungen. 60 00:02:46,810 --> 00:02:52,090 >> Also, wenn Sie ein Problem mit gerade Kompilieren, hat es eine Menge von Fehlern 61 00:02:52,090 --> 00:02:56,770 und du bist zu verzetteln bei dem Versuch durch in der Befehlszeile, um zu blättern 62 00:02:56,770 --> 00:02:59,110 durch alle, man kann sie nur drucken sie in eine Datei, 63 00:02:59,110 --> 00:03:02,130 öffnen Sie die Datei, so dass Sie durch sie leichter zu navigieren. 64 00:03:02,130 --> 00:03:05,160 Ich tatsächlich verwendet, dass eine viel, wenn ich das Debugging 65 00:03:05,160 --> 00:03:07,970 meine 181 psets für maschinelles Lernen. 66 00:03:07,970 --> 00:03:10,000 So kann es super nützlich später sein. 67 00:03:10,000 --> 00:03:18,370 Es ist auch nützlich, wenn Sie ein Programm haben dass vielleicht erzeugt eine Bibliothek 68 00:03:18,370 --> 00:03:20,430 oder erzeugen ein Satz von Strings und 69 00:03:20,430 --> 00:03:22,846 müssen in der Lage zu sehen, dass sein es richtig Erzeugen sie. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 Dies ist der Weg, das zu tun. 72 00:03:25,160 --> 00:03:28,280 >> Also, wenn man sie in einer Datei, die Sie drucken möchten, leichter untersuchen sie, nicht wahr? 73 00:03:28,280 --> 00:03:30,930 Versus versuchen, blättern durch Ihre Befehlszeile. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 Und dann eine Sache zu beachten ist, dass mit nur der größere 76 00:03:35,820 --> 00:03:40,090 als Caret, wenn Sie schreiben in einer Datei, die bereits exists-- 77 00:03:40,090 --> 00:03:44,990 so wie, wenn wir liefen diese die erste Zeit, setzen wir es um output.text, 78 00:03:44,990 --> 00:03:49,970 und dann hatten wir ein zweites Programm dass diese ausgedruckt als Programm zwei 79 00:03:49,970 --> 00:03:54,250 und tat eine größere als output.text, es wird überschreiben dass-- so 80 00:03:54,250 --> 00:03:56,715 schreiben, was jemals war in diese Datei zu beginnen. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> Also, wenn Sie angehängt werden soll in einer Datei, wie wir hier sehen, 83 00:04:00,750 --> 00:04:04,779 Sie gerade tun, zwei mehr als Zeichen. 84 00:04:04,779 --> 00:04:05,820 Und es wird, um es anzuhängen. 85 00:04:05,820 --> 00:04:06,750 Es wird nicht überschreiben. 86 00:04:06,750 --> 00:04:09,770 Also, wenn Sie mehrere ausführen müssen Programme und Art zu halten 87 00:04:09,770 --> 00:04:13,170 verfolgen, was alle von ihnen sind Rückkehr in die Sie in einer Datei, 88 00:04:13,170 --> 00:04:14,190 das ist ein Weg, um es zu tun. 89 00:04:14,190 --> 00:04:17,231 Wenn es dir egal ist, was in Ihrem Datei und es ist erlaubt, überschrieben werden, 90 00:04:17,231 --> 00:04:19,204 können Sie einfach ein einzelnes größer. 91 00:04:19,204 --> 00:04:20,600 Ist das sinnvoll, um alle? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> PUBLIKUM: Wie Punkt-Schrägstrich hallo größer als Ausgabepunkttext, wie zweimal, 94 00:04:31,140 --> 00:04:34,030 es werde einfach nur auf die Produktion zeigen dot Text ein zweites Zeit-- 95 00:04:34,030 --> 00:04:34,810 >> Sprecher 1: Richtig. 96 00:04:34,810 --> 00:04:40,450 So wäre es im Grunde nur komplett schreiben, was dort zu beginnen. 97 00:04:40,450 --> 00:04:44,260 Wenn diese Datei hier der output.text bereits 98 00:04:44,260 --> 00:04:48,230 vorhanden ist, im Grunde, was Sie nennen dass wieder mit einem einzigen größeren 99 00:04:48,230 --> 00:04:51,920 als man nur daran zu denken als wie es die Datei ersetzt. 100 00:04:51,920 --> 00:04:54,824 Wie, wenn Sie das Speichern eines Word- Dokument und Sie als speichern, 101 00:04:54,824 --> 00:04:57,365 und Sie denselben Namen beibehalten und es vollständig überschreibt es-- 102 00:04:57,365 --> 00:04:58,680 das ist das gleiche Art der Sache. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 Wer Fragen zum Thema haben nur Ausgabe in eine Datei? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 Genial. 107 00:05:05,550 --> 00:05:11,440 >> So offensichtlich, wenn Sie umkehren Pfeilrichtung, es Eingangs tun können. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 Also, wenn Sie Jungs hatten wie Cäsar oder Visioneer 110 00:05:19,960 --> 00:05:23,195 und man musste Eingangs etwas, Sie eine Befehlszeilenargument hatte 111 00:05:23,195 --> 00:05:24,960 dass tatsächlich Eingangs es. 112 00:05:24,960 --> 00:05:27,410 Dies ist ein weiterer Weg, um das zu tun. 113 00:05:27,410 --> 00:05:30,520 Also anstatt zu warten, für eine Eingabeaufforderung 114 00:05:30,520 --> 00:05:33,800 wie wenn Sie gebeten Ihre Nachricht in Caesar oder Visioneer, 115 00:05:33,800 --> 00:05:36,490 wenn Sie eine Textdatei hatte dass Ihre Botschaft hatten, 116 00:05:36,490 --> 00:05:38,280 Sie konnte ihn einfach in das. 117 00:05:38,280 --> 00:05:44,930 >> Also, wenn dies wie dot slash Caesar 3 weniger als Pfeil Eingabetext, die 118 00:05:44,930 --> 00:05:47,240 ist Ihre Botschaft, dass wäre wunderbar laufen. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 Wenn Ihr Caesar Programm tatsächlich für die Eingabe von dem Benutzer gebeten, 121 00:05:54,020 --> 00:05:57,360 es wäre schon deshalb, weil Sie in dieser Datei eingegeben haben. 122 00:05:57,360 --> 00:05:58,830 Das ist nur ein weiterer Weg. 123 00:05:58,830 --> 00:06:02,445 Nur eine Umkehrung output-- nur Eingang für Ihre Daten. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> Und dann die letzte ist Rohr. 126 00:06:06,680 --> 00:06:07,780 Also das hier ist ziemlich cool. 127 00:06:07,780 --> 00:06:09,890 Da es Ihnen erlaubt, nehmen den Ausgang eines 128 00:06:09,890 --> 00:06:13,695 Programm und legen Sie sie als Eingabe in ein anderes Programm. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 Ich weiß nicht, ob jemand von euch mit dem entziffern gespielt 131 00:06:18,630 --> 00:06:20,590 dass CS50 haben könnte euch gegeben, aber es wäre 132 00:06:20,590 --> 00:06:27,380 können Sie einige Beispiel zu nehmen Datei, geben Sie ihn in Ihre Verschlüsselung, 133 00:06:27,380 --> 00:06:30,350 und dann von dort geben dass in Ihre Entschlüsselung 134 00:06:30,350 --> 00:06:32,470 um sicherzustellen, dass es stellte sich heraus das gleiche. 135 00:06:32,470 --> 00:06:34,050 Also ist es eine Art, wie Dreiwegeschleife. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 Go for it. 138 00:06:39,423 --> 00:06:41,785 >> PUBLIKUM: Wenn ein Programm hat mehrere Eingänge, 139 00:06:41,785 --> 00:06:47,646 gibt es eine Möglichkeit, es zu sagen, welche Eingangs um die Textdatei oder die Ausgabe für den Einsatz? 140 00:06:47,646 --> 00:06:49,325 >> Sprecher 1: Es hat mehrere Eingänge. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 Was auch immer Ihre Datei input-- wenn es Bitte um Input, der zum ersten Mal, ist es 143 00:07:00,430 --> 00:07:03,240 davon ausgehen, ich denke, es ist werde Rohr in der gesamten Datei. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 Also, wenn Sie mehrere Eingänge haben, sind Sie werde in mehrere Dateien kochend werden. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 Also, wenn Sie für Nachrichten fragst dreimal in Ihrem Code, 148 00:07:12,390 --> 00:07:15,230 du gehst zu setzen sind in drei verschiedenen Dateien. 149 00:07:15,230 --> 00:07:15,980 Und es wird verrückt. 150 00:07:15,980 --> 00:07:18,188 Und Sie sollten nicht zu haben, Sorgen um, dass gerade jetzt. 151 00:07:18,188 --> 00:07:19,150 Aber das ist die Idee. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> Also ja, ist Rohr nur Ausgang eines Programm verwendet Eingang in die andere. 154 00:07:26,822 --> 00:07:27,665 Jeder gute da? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 Cool. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 Ok. 159 00:07:30,932 --> 00:07:32,890 Sie werden wahrscheinlich nicht haben zu viel zu tun. 160 00:07:32,890 --> 00:07:35,670 Aber Sie sollten verstehen, Möglichkeiten, dies zu nutzen. 161 00:07:35,670 --> 00:07:38,910 Und es gibt einige Fälle, möchten Sie vielleicht, es zu benutzen. 162 00:07:38,910 --> 00:07:44,590 >> Also Datei-I / O- Ich weiß, was du bist saying-- wir auf das Lesen aus gebrauchten 163 00:07:44,590 --> 00:07:50,500 und Schreiben auf unserem Bildschirm gibt, Das ist Standard in und Standard aus. 164 00:07:50,500 --> 00:07:54,370 Und das ist, was euch gewesen Dabei seit Beginn der Klasse hier. 165 00:07:54,370 --> 00:07:58,220 Aber Sie können auch Dateien lesen und schreiben, die alle Datei-I / O- so Datei eingegeben wird, 166 00:07:58,220 --> 00:07:59,850 Ausgang ist alles es steht. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 Also im Grunde bedeutet, dass können Sie Ihre Daten jetzt speichern. 169 00:08:04,360 --> 00:08:08,460 >> Wenn Sie nur drucken, um die Bildschirm, es ist im Grunde gegangen, nicht wahr? 170 00:08:08,460 --> 00:08:12,507 Sobald Sie machen "Hallo Welt "und run" Hallo Welt " 171 00:08:12,507 --> 00:08:14,090 er druckt "Hallo Welt" auf dem Bildschirm. 172 00:08:14,090 --> 00:08:16,370 Aber du nicht wirklich tun können etwas mit ihm von dort. 173 00:08:16,370 --> 00:08:18,950 Wenn Sie in einem Text speichern Datei, dann plötzlich 174 00:08:18,950 --> 00:08:22,789 Sie diese Daten, die darfst du haben zu manipulieren oder legen Sie sie in eine Datei, 175 00:08:22,789 --> 00:08:24,080 oder legen Sie sie in ein Programm später. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 Einer der Gründe Deshalb tun wir dies nur 178 00:08:29,290 --> 00:08:31,560 als eine Möglichkeit, um Daten für eine spätere Verwendung zu speichern. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> Ich habe ein paar Schritte hier nur zu Fuß über Standard 181 00:08:37,279 --> 00:08:39,450 I / O. Im ersten Schritt können Sie müssen einen Verweis erstellen 182 00:08:39,450 --> 00:08:43,480 zu der Datei mit allen Caps FILE Sterne-Datei. 183 00:08:43,480 --> 00:08:45,740 So daß schafft einen Zeiger auf eine Datei. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 Also dann, um es zu öffnen. 186 00:08:49,650 --> 00:08:52,940 Und Sie sagen, buchstäblich, nur Datei gleich fopen. 187 00:08:52,940 --> 00:08:57,400 Und das wird zu einer Rückkehr Zeiger auf die Datei, die Sie gerade geöffnet. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 Ich sah ein paar von euch Jungs bei der Bürozeiten. 190 00:09:01,460 --> 00:09:07,400 >> Aber eines der Dinge, ist remember-- Zeigern 191 00:09:07,400 --> 00:09:10,409 kann irgendeine Adresse oder null, richtig? 192 00:09:10,409 --> 00:09:12,700 Wenn wir jemals einen Fall, wo haben etwas kann null zurück, 193 00:09:12,700 --> 00:09:14,990 was wir zu tun haben bevor wir es überhaupt? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 Wir müssen, wenn zu überprüfen es ist null oder nicht, oder? 196 00:09:19,000 --> 00:09:23,600 Weil einige von euch vielleicht gehabt haben die Frage, wo jedes Objekt, 197 00:09:23,600 --> 00:09:26,110 wurde in Breakout zurückgekehrt war null. 198 00:09:26,110 --> 00:09:28,170 Sie haben versucht, durchführen eine Funktion auf sie. 199 00:09:28,170 --> 00:09:29,770 Und Ihr Computer Website bemängelt. 200 00:09:29,770 --> 00:09:30,725 Richtig? 201 00:09:30,725 --> 00:09:33,640 Ich wette, ein paar von euch kann dieses Problem gehabt. 202 00:09:33,640 --> 00:09:38,890 >> Also mit fopen, wird fopen entweder einen Zeiger auf die Datei, 203 00:09:38,890 --> 00:09:41,200 oder wenn etwas schief geht, es wird null zurück. 204 00:09:41,200 --> 00:09:45,980 Also immer müssen Sie prüfen, daß es nicht null zurück 205 00:09:45,980 --> 00:09:47,880 bevor Sie versuchen, etwas anderes zu tun. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 Das ist wie ein Standard-Paradigma dass du gehst zu hier benötigen. 208 00:09:51,974 --> 00:09:54,390 Wenn es überhaupt eine Chance, dass etwas könnte null zurück, 209 00:09:54,390 --> 00:09:56,590 überprüfen, um sicherzustellen, dass es nicht, bevor Sie fortfahren. 210 00:09:56,590 --> 00:09:58,911 Ansonsten wirst du zu schönen Ort Fehler bekommen. 211 00:09:58,911 --> 00:10:00,410 Und niemand mag, um mit denen umzugehen. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> So wie wir hier sehen, das erste Argument ist nur der Pfad zu der Datei. 214 00:10:06,410 --> 00:10:09,380 Wenn diese Datei nicht existiert, es geht um die Datei zu erstellen. 215 00:10:09,380 --> 00:10:10,713 Und ist es nur geht leer zu sein. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 Und dann das zweite Argument ist die, dass Sie den gewünschten Modus. 218 00:10:13,080 --> 00:10:14,610 Wollen wir aus dieser Datei gelesen? 219 00:10:14,610 --> 00:10:15,560 Wollen Sie daraus zu schreiben? 220 00:10:15,560 --> 00:10:16,476 Wollen Sie anhängen? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 Also eigentlich das, was ich gerade said-- wenn die Datei nicht existiert 223 00:10:20,670 --> 00:10:23,400 und Sie versuchen, aus dem gelesen sind es, es geht um einen Fehler zu werfen. 224 00:10:23,400 --> 00:10:26,890 Wenn die Datei name-- mögen, wenn file.text existiert noch nicht 225 00:10:26,890 --> 00:10:29,250 und Sie schreiben wollen auf, wird es zu erstellen 226 00:10:29,250 --> 00:10:33,110 eine leere Datei file.text für Sie aufgerufen. 227 00:10:33,110 --> 00:10:36,612 Und wenn Sie anhängen möchten, Sie sollten das gleiche tun. 228 00:10:36,612 --> 00:10:38,081 Ist das sinnvoll? 229 00:10:38,081 --> 00:10:40,580 Wenn Sie versuchen, aus dem gelesen sind eine Datei, die es noch nicht gibt, 230 00:10:40,580 --> 00:10:41,590 es wird ein Fehler ausgegeben. 231 00:10:41,590 --> 00:10:44,340 Andernfalls wird die Datei zu erstellen für Sie tun, was Sie es wollen. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 Cool. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 Jetzt können wir aus der Datei gelesen. 236 00:10:48,880 --> 00:10:52,570 Und dies ist nur irgendwie geht durch die verschiedenen Funktionen 237 00:10:52,570 --> 00:10:58,980 dass wir für Datei-I / O. Dieser Wille sein in dieser Woche die pset notwendig, 238 00:10:58,980 --> 00:11:00,505 wenn ich mich richtig erinnere. 239 00:11:00,505 --> 00:11:02,880 Ja, es ist absolut sein notwendig in dieser Woche die pset. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 So fgetc gibt das nächste Zeichen. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets nur eine Textzeile zurück. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 Es wird alles bis zur Rückkehr eine neue Linie, und es wird zu brechen. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 So fread liest eine bestimmte Anzahl von Bytes, und legt sie 248 00:11:18,700 --> 00:11:20,700 in ein Array, das ist etwas, das Sie vielleicht 249 00:11:20,700 --> 00:11:25,485 will mit Wieder size-- tun könnte nützlich sein. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> Wie viele Menschen haben gelesen die pset spec, übrigens? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 Ok. 254 00:11:32,261 --> 00:11:32,760 [Unverständlich] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> Sprecher 1: OK. 257 00:11:36,580 --> 00:11:37,530 In Ordnung. 258 00:11:37,530 --> 00:11:41,940 Definitiv lesen dass-- es ist ein Spaß pset. 259 00:11:41,940 --> 00:11:51,320 Sie erhalten eine gelöschte Speicher erholen card-- wirklich aufregend, wenn es funktioniert. 260 00:11:51,320 --> 00:11:54,100 Aber auf jeden Fall, dem Lesen beginnen, dass. 261 00:11:54,100 --> 00:11:56,280 Kommen Sie mit mir reden, wenn Sie Fragen über sie. 262 00:11:56,280 --> 00:11:59,290 >> OK, so wie ich schon sagte, fread liest eine bestimmte Anzahl von Bytes. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 Das ist einige beliebige Anzahl dass du gehst zu setzen. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 Und dann fseek nur bewegt in eine bestimmte Position. 267 00:12:08,260 --> 00:12:11,150 Also vielleicht haben Sie nicht interessieren über die nächsten 10 Bytes. 268 00:12:11,150 --> 00:12:12,880 Sie wollen einfach nur nach vorne zu springen. 269 00:12:12,880 --> 00:12:14,030 Sie kümmern sich nicht um diese. 270 00:12:14,030 --> 00:12:16,280 Sie möchten ab dem Byte 11. 271 00:12:16,280 --> 00:12:18,252 fseek ermöglicht Ihnen, das zu tun. 272 00:12:18,252 --> 00:12:20,710 So erlaubt es Ihnen, selektiv sein über das, was Sie lesen. 273 00:12:20,710 --> 00:12:25,880 Weil fgetc, fgets und fread lesen von einer bestimmten Stelle in der Datei. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> Ein Weg, um dies zu denken ist, wenn diese ist unsere Datei, wenn Sie zunächst öffnen, 276 00:12:35,090 --> 00:12:41,140 Sie diese Position in der Datei haben das beginnt am Anfang. 277 00:12:41,140 --> 00:12:45,040 Wann immer Sie nennen fgetc, fgetf oder fread, 278 00:12:45,040 --> 00:12:48,875 es wird aus starten Dieses Positionsmarkierung. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 Angenommen, Sie haben gerade lesen möchten Dieser Teil des Speichers hier. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 Man kann nicht einfach anrufen. 283 00:12:57,960 --> 00:13:02,430 Sie haben hier zu suchen und dann von dort zu lesen 284 00:13:02,430 --> 00:13:06,540 oder lesen, bekommt, oder getc, je nachdem, was Sie wollen. 285 00:13:06,540 --> 00:13:09,310 Also suchen nur ermöglicht es Ihnen, überspringen Teile des Speichers. 286 00:13:09,310 --> 00:13:11,590 Und das ist die einzige So können Sie die Dinge überspringen 287 00:13:11,590 --> 00:13:14,012 ohne sie zu lesen in Ihrem Puffer. 288 00:13:14,012 --> 00:13:15,470 Ist das sinnvoll, um alle? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> Offensichtlich gibt es eine viel parallel hier-- 291 00:13:24,780 --> 00:13:27,780 unserer Ausgang oder Eingabeumleitung, Sie gelesen haben und schreiben. 292 00:13:27,780 --> 00:13:31,800 So fputc gerade schreibt ein Zeichen in der Datei. 293 00:13:31,800 --> 00:13:33,655 fputs schreibt ein paar Zeilen. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf druckt eine formatierte Ausgabe. 296 00:13:37,420 --> 00:13:41,190 Also, wenn Sie Register aufweisen, oder Raum, oder was. 297 00:13:41,190 --> 00:13:44,180 Und dann schreibt fwrite einige Array von Bytes in einer Datei. 298 00:13:44,180 --> 00:13:48,860 Dies ist also die gleiche Art und Weise fwrite und fread sind analog 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs und dann fputc und fgetc-- Lose 300 00:13:57,550 --> 00:14:00,710 verrückte, schnelle Sachen. 301 00:14:00,710 --> 00:14:05,300 >> Nur irgendwie diesen handy-- halten Du unterschiedlichen Zeiten haben 302 00:14:05,300 --> 00:14:08,680 wo vielleicht wollen Sie nur ein Zeichen zu einem Zeitpunkt. 303 00:14:08,680 --> 00:14:09,890 Vielleicht möchten Sie eine ganze Zeile. 304 00:14:09,890 --> 00:14:14,320 Mit Ihrem Wörterbuch pset-- Das ist in zwei pset- 305 00:14:14,320 --> 00:14:19,690 Ich glaube, wir geben Ihnen eine ganze Wörterbuch in einem Textformat 306 00:14:19,690 --> 00:14:22,252 was sich jedes Wort durch eine Linie getrennt. 307 00:14:22,252 --> 00:14:24,210 Also, wenn Sie lesen wollte in einem Wort zu einem Zeitpunkt, 308 00:14:24,210 --> 00:14:31,769 was könnte man verwenden, wenn Sie lesen und sie sind alle auf neuen Linien getrennt, 309 00:14:31,769 --> 00:14:33,310 und Sie wollen einfach nur ein Wort zu einer Zeit? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> PUBLIKUM: fgets 312 00:14:36,040 --> 00:14:36,748 >> Sprecher 1: Richtig. 313 00:14:36,748 --> 00:14:39,960 Fgets-- denn das gibt was auch immer auf einer Linie. 314 00:14:39,960 --> 00:14:42,750 Und wenn jedes Wort ist seine eigene Linie, können wir fgets verwenden. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 Cool. 317 00:14:45,010 --> 00:14:47,290 Macht das Sinn, alle? 318 00:14:47,290 --> 00:14:48,020 Cool? 319 00:14:48,020 --> 00:14:50,020 Ja, wir gehen zu erreichen der lustige Teil mit Zeigern 320 00:14:50,020 --> 00:14:51,728 sehr bald, wo Sie bekommen, um etwas Mathematik zu tun. 321 00:14:51,728 --> 00:14:52,776 Und es wird groß sein. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> Letzte step-- Ihre Datei zu schließen. 324 00:14:57,740 --> 00:15:01,090 Mit so viele Dinge hier, einer unserer Paradigmen 325 00:15:01,090 --> 00:15:03,550 ist, wenn sie zurückkehren können null, überprüfen Sie den Wert null. 326 00:15:03,550 --> 00:15:06,160 Wenn Sie etwas zu öffnen, Sie lieber schließen. 327 00:15:06,160 --> 00:15:10,419 OK, so dass Sie nicht getan, bis Sie getan, wenn Sie es geschlossen haben. 328 00:15:10,419 --> 00:15:12,585 Ein bisschen wie es ist noch nicht vorbei bis die fette Dame singt. 329 00:15:12,585 --> 00:15:14,130 Das ist wie das Schließen Ihrer Datei. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 So heißt es hier, nur zu wiederholen, immer 332 00:15:19,190 --> 00:15:21,750 öffnen Sie Ihre Datei vor du bist Lesen oder Schreiben zu. 333 00:15:21,750 --> 00:15:24,450 Und immer schließen Sie es, wenn Sie es geöffnet haben. 334 00:15:24,450 --> 00:15:25,460 In Ordnung? 335 00:15:25,460 --> 00:15:25,960 Cool. 336 00:15:25,960 --> 00:15:26,835 >> Also hier ist ein Beispiel. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 Wenn ja tiny-- ich kenne dich nicht Jungs können das sehr gut zu sehen. 339 00:15:34,330 --> 00:15:36,805 Wenn wir nur erhöhen könnte die Helligkeit irgendwie. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 Lassen Sie mich eigentlich tun, wenn ich kann. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 OK, kann euch nicht wirklich sehen, dass überhaupt, können Sie? 344 00:15:51,470 --> 00:15:52,905 OK, wir gehen, dies zu tun, dann. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [Unverständlich] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> Ich nehme an, das ist viel besser zu sehen. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 Kann jemand sehen, wo meine Maus ging ist die Frage? 351 00:17:19,455 --> 00:17:22,837 Ah, da es ist-- was kämpft! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> Ok. 354 00:17:49,520 --> 00:17:53,845 Grundsätzlich sollten Sie Jungs Art haben einer Idee, was dieser tut. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 Es ist nicht perfekt. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 Aber ich möchte lieber erklären als zu verbringen mehr Zeit mit dem Versuch, um es richtig zu formatieren. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 Grundsätzlich wie Sie hier sehen, beginnen wir mit Datei geöffnet. 361 00:18:07,280 --> 00:18:09,620 Und wir haben einige Datenbankdatei, die wir sind 362 00:18:09,620 --> 00:18:12,300 Öffnung, die sagt, es ist unsere Studenten. 363 00:18:12,300 --> 00:18:14,020 Und wir werden, es zu schreiben. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 So natürlich, null zurück. 366 00:18:17,720 --> 00:18:19,650 Also müssen wir für null überprüfen. 367 00:18:19,650 --> 00:18:22,930 Und dann, wenn es nicht null, gehen wir durch. 368 00:18:22,930 --> 00:18:25,660 Und wie Sie sehen, sind wir Looping durch hier. 369 00:18:25,660 --> 00:18:26,960 Es gibt Studenten. 370 00:18:26,960 --> 00:18:30,520 Studierende ist Hash definiert als drei. 371 00:18:30,520 --> 00:18:34,060 Und was wir tun ist, wir sind Drucken auf die Datei, oder? 372 00:18:34,060 --> 00:18:36,975 Also, was sind wir den Druck, um unsere Datei? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> PUBLIKUM: Die Noten dass in dem Array sind? 375 00:18:48,906 --> 00:18:49,680 >> Sprecher 1: Ja. 376 00:18:49,680 --> 00:18:50,980 Die Noten, die in sind die array-- genau. 377 00:18:50,980 --> 00:18:53,050 So eröffnen wir diese Datenbankdatei, die 378 00:18:53,050 --> 00:18:56,040 Ich nehme an, eine Art Notendatenbank. 379 00:18:56,040 --> 00:19:01,100 Und wir sind nur Ausdruck der Partituren der einzelnen Schüler zu dieser Datei. 380 00:19:01,100 --> 00:19:02,140 Cool? 381 00:19:02,140 --> 00:19:02,640 Gut. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 Genial. 384 00:19:04,310 --> 00:19:05,100 Ok. 385 00:19:05,100 --> 00:19:06,950 Lassen Sie uns zurück zu-- 386 00:19:06,950 --> 00:19:08,646 >> PUBLIKUM: Ich habe eine kurze Frage. 387 00:19:08,646 --> 00:19:11,570 Ist der printf nicht in der for-Schleife? 388 00:19:11,570 --> 00:19:12,870 Das ist nur in der if-Schleife? 389 00:19:12,870 --> 00:19:14,370 Sprecher 1: Nein, es ist in der for-Schleife. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 Ich kann nicht sehen, meine Maus sehr gut hier oben. 392 00:19:18,810 --> 00:19:21,359 Also bin ich kämpfen, um Format, das richtig. 393 00:19:21,359 --> 00:19:22,525 Diese Halterung sollte verschwunden sein. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 Es sollte hier unten sein. 396 00:19:25,130 --> 00:19:26,605 Dies ist, was in Ihrem for-Schleife. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 Da. 399 00:20:11,180 --> 00:20:12,160 Jetzt ist es hübsch. 400 00:20:12,160 --> 00:20:16,720 Also das ist, wie es sein sollte, außer be-- für die letzte Klammer, die ich entlassen. 401 00:20:16,720 --> 00:20:17,220 Ok. 402 00:20:17,220 --> 00:20:19,491 Ist das sinnvoll, um alle? 403 00:20:19,491 --> 00:20:19,990 Ok. 404 00:20:19,990 --> 00:20:23,750 Wir werden weiterziehen zur nächsten Sache dann- 405 00:20:23,750 --> 00:20:26,180 was, eigentlich, Sie gehen zu müssen, um den Code zu sehen. 406 00:20:26,180 --> 00:20:28,370 Also ich bin gerade dabei, kopieren, dass mehr als jetzt. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 Ok. 409 00:20:32,000 --> 00:20:35,110 Also werde ich Sie diesen Code, um zu zeigen Jungs. 410 00:20:35,110 --> 00:20:38,240 Und ich möchte, dass Sie versuchen, Figur herauszufinden, was es tun soll. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> Also gegeben dass-- eine Minute dauern. 413 00:20:52,480 --> 00:20:54,440 Versuchen Sie herauszufinden, was hier vor sich geht. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> Irgendwelche Ideen? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> Wir wissen, dass wir mindestens zwei Argumente in der Kommandozeile, oder? 418 00:22:12,470 --> 00:22:16,270 Ich nehme an, von denen sein wird dass [unverständlich] unseres Programms ist 419 00:22:16,270 --> 00:22:17,530 und dann etwas anderes. 420 00:22:17,530 --> 00:22:19,980 Denn wenn [unverständlich] weniger als zwei, wir schreien sie an. 421 00:22:19,980 --> 00:22:21,140 Richtig? 422 00:22:21,140 --> 00:22:25,300 Und die aus der Nutzung, es sieht aus wie es geht um eine Art von Datei sein. 423 00:22:25,300 --> 00:22:26,260 Wir alle stimmen zu, dass? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 So jetzt, was ist die Schleife zu tun? 426 00:22:31,570 --> 00:22:32,570 Wie ist es durchmacht? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> PUBLIKUM: Alle Dateien. 429 00:22:36,449 --> 00:22:37,240 Sprecher 1: Genau. 430 00:22:37,240 --> 00:22:39,650 Es ist durch gehen den ganzen Dateien, die wir haben Eingang gibt. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 Also für jede Datei, ist es eröffnet eine Schnur gibt. 433 00:22:46,040 --> 00:22:47,560 Es öffnet sich die Datei. 434 00:22:47,560 --> 00:22:48,060 Richtig? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 Und es ist von ihm zu lesen. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 Natürlich überprüft, ob es null. 439 00:22:55,540 --> 00:22:57,220 Und dann ist es zu drucken. 440 00:22:57,220 --> 00:23:01,460 Wenn es null, es ist nur sagen uns dass das nicht eine Datei, die existiert. 441 00:23:01,460 --> 00:23:04,290 Denn denken Sie daran, mit lesen Sie unsere Datei zu bestehen hat. 442 00:23:04,290 --> 00:23:04,810 Richtig? 443 00:23:04,810 --> 00:23:06,870 Mit Schreib- und append, Sie bekommen können mit ihm weg. 444 00:23:06,870 --> 00:23:08,970 Aber mit Lese-, hat unsere Datei zu existieren. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> Und dann, wenn es existiert, Was tun wir hier? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 Lassen Sie uns gerade hier zu beginnen. 449 00:23:15,780 --> 00:23:18,815 Was ist das do-- dieses erste Zeichen. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 Was ist zu tun? 452 00:23:21,790 --> 00:23:24,100 Er bekommt ein Zeichen, oder? 453 00:23:24,100 --> 00:23:25,400 Was also ist das da? 454 00:23:25,400 --> 00:23:26,775 Es wird das erste Zeichen. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 Wer weiß, EOF? 457 00:23:30,200 --> 00:23:31,170 >> PUBLIKUM: Ende der Datei? 458 00:23:31,170 --> 00:23:32,680 >> Sprecher 1: End of file-- genau. 459 00:23:32,680 --> 00:23:35,310 Also, es wird durchgehen die gesamte Datei, oder? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 Und dann, es wird durch aktualisieren bekommen jedes nachfolgende Zeichen. 462 00:23:40,780 --> 00:23:41,565 Richtig? 463 00:23:41,565 --> 00:23:43,636 Und was tut sie? 464 00:23:43,636 --> 00:23:44,760 PUBLIKUM: Putting, dass in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> Sprecher 1: putchar Drucke zu Ihrem Bildschirmschoner. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [Unverständlich] das Zeichen. 469 00:23:51,950 --> 00:23:54,300 Und dann, wenn es [unverständlich] Dies wird die Datei schließen. 470 00:23:54,300 --> 00:23:57,370 >> PUBLIKUM: Haben Sie nicht brauchen einen [? sonst? ?] 471 00:23:57,370 --> 00:23:59,005 >> Sprecher 1: Nicht unbedingt. 472 00:23:59,005 --> 00:24:01,480 Ich meine, es ist eine Art in diese impliziert werden. 473 00:24:01,480 --> 00:24:06,780 Denn dies gibt, obwohl, wie lange da dies nicht fangen diese, du bist in Ordnung. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 Ich meine, es ist wahrscheinlich gut üben, um eine anderes zu tun. 476 00:24:10,250 --> 00:24:15,755 Aber ein anderes ist nicht immer notwendig vor allem 477 00:24:15,755 --> 00:24:17,610 wenn du etwas haben wie eine Rückkehr, die 478 00:24:17,610 --> 00:24:20,640 bedeutet, dass in diesem Fall, wenn es auch es, Ihr Programm geht zu Ende 479 00:24:20,640 --> 00:24:21,850 und es wird nie dazu kommen. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 Es ist mehr für den Fall, dass Sie nicht unbedingt der Rückkehr etwas. 482 00:24:29,190 --> 00:24:31,370 Denn wenn dies nicht Rück nichts, 483 00:24:31,370 --> 00:24:34,430 es würde bedeuten, dass, wenn das wahr wäre, der Rest würde noch laufen. 484 00:24:34,430 --> 00:24:36,138 Und in diesem Fall gegebenen würde ein falsches möchten. 485 00:24:36,138 --> 00:24:38,240 Wenn es zurückkehrt, und Ihr Programm Ende, 486 00:24:38,240 --> 00:24:41,960 ein anderes ist alles nicht nötig die Zeit, abhängig vom Kontext. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 Jakob, hast du eine Frage? 489 00:24:44,375 --> 00:24:46,100 PUBLIKUM: Yeah. 490 00:24:46,100 --> 00:24:49,300 Also tut fgetc das nächste Zeichen zu bekommen? 491 00:24:49,300 --> 00:24:50,734 Wie funktioniert der Charakter zu erhöhen? 492 00:24:50,734 --> 00:24:51,400 Sprecher 1: Ja. 493 00:24:51,400 --> 00:24:52,774 So fgetc bekommt das nächste Zeichen. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Sie können es wie C ++ in einem gewissen Sinne zu denken. 496 00:24:56,866 --> 00:24:58,350 >> PUBLIKUM: Also, was EOF war? 497 00:24:58,350 --> 00:25:00,877 >> Sprecher 1: EOF Ende der Datei. 498 00:25:00,877 --> 00:25:03,960 Es ist nur eine Markierung, die Sie wissen lässt dass Sie am Ende der Datei. 499 00:25:03,960 --> 00:25:06,742 Also das wird gedruckt zu Ihrem Standard heraus. 500 00:25:06,742 --> 00:25:08,950 Und dann es geht um zu schließen die Datei, wenn es fertig ist. 501 00:25:08,950 --> 00:25:10,700 Und dann lassen Sie uns gehen die nächste Datei, oder? 502 00:25:10,700 --> 00:25:12,660 Also insgesamt, was bedeutet das Programm? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [Unverständlich] 505 00:25:16,090 --> 00:25:16,900 >> Sprecher 1: Ja. 506 00:25:16,900 --> 00:25:18,770 Er druckt einfach alles da. 507 00:25:18,770 --> 00:25:23,270 Also, wenn euch je benutzt habe CAT und dann die Namen irgend file-- 508 00:25:23,270 --> 00:25:26,240 Ich weiß nicht, ob jemand von euch immer das getan auf Ihrem Terminal. 509 00:25:26,240 --> 00:25:29,630 Aber wenn Sie jemals verwenden die Befehl CAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 und dann unabhängig von Datei Sie dort-- es 511 00:25:31,880 --> 00:25:37,260 druckt es aus, um Ihre Terminal, das kann super praktisch für einige Dinge. 512 00:25:37,260 --> 00:25:38,746 Ich benutze es eine Menge. 513 00:25:38,746 --> 00:25:40,120 Ist das sinnvoll, um alle? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 Cool? 516 00:25:42,100 --> 00:25:46,530 >> OK, damit Ihre Aufgabe now-- entweder durch sich selbst oder mit den Leuten um Sie-- 517 00:25:46,530 --> 00:25:54,930 ist es, schreiben Sie einfach ein einfaches Programm das wird nur schreiben "Hallo Welt!" 518 00:25:54,930 --> 00:25:56,255 in einer Datei. 519 00:25:56,255 --> 00:26:00,215 >> [Unverständlich] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [Unverständlich] 522 00:26:57,040 --> 00:26:59,248 >> Sprecher 1: Ich war wie, tat Ich tun, dass schlecht letzte Woche? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 Ich glaube nicht, es war so schlimm. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 Ich bin froh, dass Sie alle hier sind. 527 00:27:03,520 --> 00:27:04,655 Es macht mich wirklich glücklich. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 Ich bin ein Mädchen von einfachen Freuden. 530 00:27:10,160 --> 00:27:11,688 Ich möchte nur, wenn mein Abschnitt besucht. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 Also ich bin gerade erst diese begann für euch, damit wir zusammen Code kann. 533 00:27:18,270 --> 00:27:22,290 Ich mag es nicht Putting jedermann auf der Spot, wenn Sie wollen. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> Gruppe: für das Quiz, zu tun müssen wir ein Programm zu schreiben? 536 00:27:30,086 --> 00:27:33,260 >> Sprecher 1: Sie können die gestellt werden schreiben einfache Programme von Hand. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 Jawohl. 539 00:27:36,590 --> 00:27:38,510 >> PUBLIKUM: Das Quiz ist nächste Woche, oder? 540 00:27:38,510 --> 00:27:40,108 >> Sprecher 1: Das Quiz ist am kommenden Mittwoch. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 Das heißt, es ist ein schönes [? CSE?] Einstufung Party danach, die 543 00:27:43,730 --> 00:27:50,390 bedeutet, dass Sie Ihre Ergebnisse bekommen Rücken, zu welchem ​​Zeitpunkt night--? 544 00:27:50,390 --> 00:27:50,890 Wer weiß? 545 00:27:50,890 --> 00:27:51,973 Aber es wird an diesem Abend sein. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> In Ordnung. 548 00:28:02,855 --> 00:28:04,250 Wie wollen wir dies an? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 Ich gebe Ihnen ein hint-- beginnt mit diesem. 551 00:28:09,630 --> 00:28:11,455 >> PUBLIKUM: Sie haben, um eine Datei zu öffnen. 552 00:28:11,455 --> 00:28:12,250 >> Sprecher 1: Ja. 553 00:28:12,250 --> 00:28:14,060 Also, was wollen Sie diese nennen? 554 00:28:14,060 --> 00:28:16,150 Haben Sie nur wollen, um es "Datei" zu nennen? 555 00:28:16,150 --> 00:28:17,480 Machen wir es einfach. 556 00:28:17,480 --> 00:28:26,752 So fopen-- was unsere Ausgangstest sein wird? 557 00:28:26,752 --> 00:28:36,130 Nennen Sie es "Hallo." 558 00:28:36,130 --> 00:28:37,810 Und was ist unser Modus? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 Was tun wir, um diese Datei? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> PUBLIKUM: Lesen. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 Schreiben. 565 00:28:44,900 --> 00:28:46,191 Sprecher 1: Wir sind daran zu schreiben. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 Lovely. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 OK, also diese Datei haben wir jetzt. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 Was brauchen wir, um zu tun? 572 00:28:56,212 --> 00:28:57,420 PUBLIKUM: Überprüfen Sie, ob es null. 573 00:28:57,420 --> 00:28:59,820 Sprecher 1: Prüfen Sie, ob es null-- genau. 574 00:28:59,820 --> 00:29:01,980 Das ist, was Ich mag zu hören. 575 00:29:01,980 --> 00:29:05,930 Das sollte automatisch erfolgen, vor allem so ziemlich von diesem Punkt an. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 Wenn Sie Speicherzugriffsfehler zu starten, werden Sie wahrscheinlich nicht für null überprüfen irgendwo. 578 00:29:10,950 --> 00:29:12,480 In neun von zehn, das ist gehen, um Ihre Fehler. 579 00:29:12,480 --> 00:29:15,400 Also, wenn du könntest einfach in das zu bekommen Gewohnheit, immer überprüfen, wenn es null, 580 00:29:15,400 --> 00:29:18,150 Ihr Leben geht zu sein schön und easy-- oder einfacher. 581 00:29:18,150 --> 00:29:19,480 >> So überprüfen Sie, ob es null. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 Also, wenn es nicht null ist, dem ist das, was der Knall ist gleich 584 00:29:24,820 --> 00:29:26,784 means-- nicht null-- es ist gültig. 585 00:29:26,784 --> 00:29:27,700 Was wollen wir tun? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 Wir drucken möchten gerade auf diese Datei, nicht wahr? 588 00:29:31,570 --> 00:29:32,923 Also, was sollen wir benutzen? 589 00:29:32,923 --> 00:29:34,092 >> PUBLIKUM: Fprintf 590 00:29:34,092 --> 00:29:36,800 >> Sprecher 1: Fprintf-- schön. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 Und fprintf dauert zwei arguments-- wo es geht und was wir wollen gedruckt. 593 00:29:44,000 --> 00:29:45,820 Also, was ist der erste? 594 00:29:45,820 --> 00:29:46,570 Wo ist es hin? 595 00:29:46,570 --> 00:29:47,490 >> PUBLIKUM: Datei. 596 00:29:47,490 --> 00:29:48,785 >> Sprecher 1: Es wird in einer Datei. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 Und was wollen wir gedruckt? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "Hallo, Welt!" 601 00:29:58,065 --> 00:29:58,565 In Ordnung. 602 00:29:58,565 --> 00:30:03,670 Wir haben eine letzte thing-- ein weiterer großer Paradigmen hier. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 PUBLIKUM: Schließen. 605 00:30:05,145 --> 00:30:05,853 Sprecher 1: Schließen. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 Dort gehen Sie. 608 00:30:10,540 --> 00:30:13,384 >> PUBLIKUM: Ist das passiert wenn die Datei null? 609 00:30:13,384 --> 00:30:15,050 Sprecher 1: Nein, das ist, wenn es nicht null. 610 00:30:15,050 --> 00:30:16,881 PUBLIKUM: Oh, wenn es nicht-- OK. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 Für die fopen und dann die zwei Argumente, die hineingehen, 613 00:30:25,410 --> 00:30:27,655 was hat das erste Argument wieder bedeuten? 614 00:30:27,655 --> 00:30:30,392 >> Sprecher 1: Das Argument ist wie der Name der Datei, 615 00:30:30,392 --> 00:30:31,350 dass Sie wollen, um zu gehen. 616 00:30:31,350 --> 00:30:36,020 So, nachdem diese läuft, würden Sie haben einige Datei namens "Hallo" 617 00:30:36,020 --> 00:30:38,320 das hatte "Hallo Welt" in ihr. 618 00:30:38,320 --> 00:30:38,820 Das ist alles. 619 00:30:38,820 --> 00:30:39,500 Nur der Name. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> PUBLIKUM: Und da es das Schreiben, das Datei muss nicht bereits existieren. 622 00:30:48,650 --> 00:30:49,675 Ist das, was Sie gesagt haben? 623 00:30:49,675 --> 00:30:50,410 >> Sprecher 1: Richtig. 624 00:30:50,410 --> 00:30:50,910 Genau. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 Wenn "Hallo" als Datei noch nicht existiert, ist es 627 00:30:55,839 --> 00:30:58,380 werde eine Datei namens erstellen Hallo "und schreiben, um es für Sie. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> PUBLIKUM: Wenn Sie sagen das Programm zum Schreiben an der Datei, 630 00:31:03,610 --> 00:31:08,075 Warum schreiben Sie "Datei" statt der Name der Datei und fprintf-- 631 00:31:08,075 --> 00:31:13,600 >> Sprecher 1: Denn in diesem Fall haben wir dass große FILE-- alles in caps-- Stern, 632 00:31:13,600 --> 00:31:14,260 einreichen. 633 00:31:14,260 --> 00:31:17,370 So ist es ein Zeiger auf den Datei dass du redest. 634 00:31:17,370 --> 00:31:19,930 Dies ist der Weg, wir einfach darauf verweisen. 635 00:31:19,930 --> 00:31:24,850 Also in diesem Fall, können Sie kann der file-- aha denke, 636 00:31:24,850 --> 00:31:31,271 wir this-- Datei hier verwenden bezieht sich auf die Eröffnung des "Hallo" 637 00:31:31,271 --> 00:31:32,145 und lässt sie zu schreiben. 638 00:31:32,145 --> 00:31:34,728 >> PUBLIKUM: Könnten wir einen "Hallo" statt [? von nur?] f-Datei? 639 00:31:34,728 --> 00:31:40,160 Sprecher 1: Nein, denn "Hallo" muss offen und beschreibbar sein. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 Datei hier ist wie ein Bezeichner, die OK sagt, wir 642 00:31:45,980 --> 00:31:49,190 haben diese file-- hello-- dass wir auf der Suche. 643 00:31:49,190 --> 00:31:50,680 Es wurde geöffnet. 644 00:31:50,680 --> 00:31:52,140 Und wir werden, es zu schreiben. 645 00:31:52,140 --> 00:31:55,130 Wenn Sie einfach "Hallo", was darin eingekapselt. 646 00:31:55,130 --> 00:31:56,846 Also, es wird ausflippen. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 Ich meine, man könnte es genannt haben. 649 00:32:00,300 --> 00:32:03,960 Sie könnten Datei getan haben, Stern, "Hallo", ist gleich, dass. 650 00:32:03,960 --> 00:32:07,840 Aber der springende Punkt ist, dass Sie dringendst eine Datei Sterne Zeiger um 651 00:32:07,840 --> 00:32:09,281 in der Lage sein, um diese Funktionen nutzen zu können. 652 00:32:09,281 --> 00:32:11,280 PUBLIKUM: Können Sie Datei, Sterne, file, "Hallo" 653 00:32:11,280 --> 00:32:13,113 oder haben Sie zu setzen Datei Stern, Datei, indem es? 654 00:32:13,113 --> 00:32:16,330 Sprecher 1: Du könntest do-Datei, Stern, "Hallo." 655 00:32:16,330 --> 00:32:19,790 Sie können dies ändern welchem ​​Namen auch immer Sie wollen. 656 00:32:19,790 --> 00:32:22,114 Es ist völlig willkürlich was das heißt. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 Sie können es nennen nichts. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 Nennen Sie es fliegen Spaghetti, wenn man wollte. 661 00:32:28,020 --> 00:32:29,690 >> PUBLIKUM: Was ist das "w" in Anführungszeichen zu? 662 00:32:29,690 --> 00:32:31,540 >> Sprecher 1: Das "w" ist nur der Modus. 663 00:32:31,540 --> 00:32:33,170 Also sind wir in diese Datei zu schreiben. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 Jeder gut? 666 00:32:35,320 --> 00:32:36,227 Klar? 667 00:32:36,227 --> 00:32:36,981 Ja. 668 00:32:36,981 --> 00:32:40,365 >> PUBLIKUM: Also, wenn es dies schreibt Datei, wo finden wir dann diese Datei? 669 00:32:40,365 --> 00:32:43,820 >> Sprecher 1: Es wird in der gleichen sein Verzeichnis, das Sie sind momentan in. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 Wenn Sie in pset drei sind und Sie dies, innerhalb Ihrer pset laufen 672 00:32:48,880 --> 00:32:52,600 drei Ordner sein wird Diese Datei namens "Hallo." 673 00:32:52,600 --> 00:32:53,160 Cool? 674 00:32:53,160 --> 00:32:53,757 Jeder gut? 675 00:32:53,757 --> 00:32:55,840 Ich fühle mich wie du bist alles es zu bekommen, das ist toll. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 Ok. 678 00:32:57,790 --> 00:33:05,960 Also zurück zu meiner Dia show-- Ich liebe es, wenn Dinge funktionieren. 679 00:33:05,960 --> 00:33:08,674 OK, pointers-- Seid ihr aufgeregt? 680 00:33:08,674 --> 00:33:09,465 Zeiger sind groß. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 Sie nehmen ein wenig um den Kopf wickeln um. 683 00:33:13,580 --> 00:33:15,288 Dies ist mein zweites Jahr Lehr Zeigern. 684 00:33:15,288 --> 00:33:16,850 Und ich glaube, ich habe es endlich. 685 00:33:16,850 --> 00:33:18,650 Also, wenn Sie zu kämpfen, ist es OK. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 Wie ich schon sagte, das Zeichnen von Bildern hilft viel mit Dingen in CS, 688 00:33:24,070 --> 00:33:27,400 so viel wie ich glaube, die Leute sind in der Regel zu denken, oh, die an einem Computer können wir. 689 00:33:27,400 --> 00:33:28,399 Wir sollten einfach Code. 690 00:33:28,399 --> 00:33:30,190 NO- Zeichnung Bilder hilft Ihnen wirklich. 691 00:33:30,190 --> 00:33:32,773 Und ich ermutige Sie, Versetzen Sie sich in Kindergartenseite 692 00:33:32,773 --> 00:33:35,010 und bringen Buntstifte oder Marker und Unentschieden. 693 00:33:35,010 --> 00:33:36,110 Denn es wird dir helfen. 694 00:33:36,110 --> 00:33:39,380 Und wenn du mich im Büro zu sehen, ich wird um Stapel von Papier tragen 695 00:33:39,380 --> 00:33:41,580 mit Stiften zeichnen Dinge aus. 696 00:33:41,580 --> 00:33:44,370 >> Also vor allem mit pointers-- Bilder zu zeichnen. 697 00:33:44,370 --> 00:33:47,970 Und ich bin sicher, dass wir tatsächlich zu sein zeichnen einige Bilder hier. 698 00:33:47,970 --> 00:33:51,270 >> So euch allen lernte Binky sehen dieses coole claymation Sache. 699 00:33:51,270 --> 00:33:54,720 Und wir denken, es ist wirklich lustig, wenn er explodiert in einen Haufen von Stücken. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 Es ist einige Comic Relief für die Klasse. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 C [unverständlich] diese große Fähigkeit um Speicher zu steuern. 704 00:34:05,900 --> 00:34:10,090 Und es ist eines der Dinge, die wirklich macht es wie eine mächtige Sprache. 705 00:34:10,090 --> 00:34:13,469 Aber mit großer Macht kommt große Verantwortung. 706 00:34:13,469 --> 00:34:16,230 Und verrückte Dinge passieren können Wenn Sie nicht vorsichtig sind. 707 00:34:16,230 --> 00:34:18,560 Also, wenn Sie verwenden Zeiger, machen möchten Sie 708 00:34:18,560 --> 00:34:21,440 sicher, dass Sie wirklich verstehen, genau das, was du tust. 709 00:34:21,440 --> 00:34:25,530 Hoffentlich wird das nächste bisschen Zeit wird Ihnen helfen, wirklich zu verstehen, 710 00:34:25,530 --> 00:34:27,850 Zeiger, wie man sie benutzt, und wie man sie zu manipulieren. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> So memory-- Ich bin sicher, wir haben gesehen dieses Diagramm. 713 00:34:33,460 --> 00:34:38,540 Also das ist nur ein einfaches Diagramm wie sich die Dinge vielleicht Speicher abgelegt werden. 714 00:34:38,540 --> 00:34:43,145 So haben Sie grundsätzlich diese riesige Felder von einem Byte-Blöcke 715 00:34:43,145 --> 00:34:46,000 ist, was wir haben hier-- leichten um eins jedes Mal. 716 00:34:46,000 --> 00:34:51,810 Dies ist in hex [unverständlich] so Acht-Bit-Blöcken. 717 00:34:51,810 --> 00:34:55,510 Und jeder Block zugeordnet mit etwas Hexadezimaladresse. 718 00:34:55,510 --> 00:34:58,750 Also, wenn Sie jemals sehen die 0x, das ist nur die Notation 719 00:34:58,750 --> 00:35:00,670 dass es eine hexadezimale Adresse. 720 00:35:00,670 --> 00:35:03,970 Sie können davon ausgehen, bedeutet dies, irgendeine Adresse im Speicher. 721 00:35:03,970 --> 00:35:06,935 Wir reden über Speicheradressen sprechen wenn Sie sehen, hexadezimal. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> Wir haben ints sind Variablen, Schwimmer sind Variablen, die gespeichert werden. 724 00:35:14,630 --> 00:35:16,260 So ints store ints. 725 00:35:16,260 --> 00:35:17,430 Floats Speicher schwimmt. 726 00:35:17,430 --> 00:35:20,260 So haben wir auch Zeiger diesem Speicher Speicheradressen. 727 00:35:20,260 --> 00:35:21,660 Das ist eine Art von Mapping. 728 00:35:21,660 --> 00:35:24,240 Zeiger sind ausschließlich für Speicheradressen. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 Also das ist, wie Ihre Art gibt. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 Ihr Gerät ist 32-Bit, was bedeutet, dass Ihre Speicheradresse ist vier Bytes. 733 00:35:34,470 --> 00:35:37,830 So dass jeder Zeiger, die Sie haben wird sich auch bis vier Byte. 734 00:35:37,830 --> 00:35:43,200 Oder aber, wenn es vier Bytes, Speicher vier Byte. 735 00:35:43,200 --> 00:35:44,790 Pointers Speicher Speicher. 736 00:35:44,790 --> 00:35:46,430 Daher sind sie vier Byte. 737 00:35:46,430 --> 00:35:48,460 Cool-- will nur verstärken, dass. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> Sie sollten diesen Comic jetzt. 740 00:35:52,220 --> 00:35:55,040 Ich weiß nicht, wie viele von euch sind xkcd Fans, aber ich liebe xkcd. 741 00:35:55,040 --> 00:35:55,780 Es ist toll. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> In Ordnung. 744 00:35:57,790 --> 00:36:01,640 So schaffen pointers-- wie gesagt, es ist ziemlich genau wie alles andere. 745 00:36:01,640 --> 00:36:02,930 Sie haben einen Typ. 746 00:36:02,930 --> 00:36:04,050 Sie haben einen Namen. 747 00:36:04,050 --> 00:36:04,810 Richtig? 748 00:36:04,810 --> 00:36:10,410 Das ist, was wir da haben. [? Hex?] Sterne bedeutet, es ist ein Zeiger, 749 00:36:10,410 --> 00:36:12,250 und dann was auch immer Sie es nennen wollen. 750 00:36:12,250 --> 00:36:15,770 Also der Typ repräsentiert was Sie speichern können. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 In Ordnung? 753 00:36:17,990 --> 00:36:24,350 In der gleichen Weise, dass, wenn wir tun, ints, wir wissen, dass wir Speichern eines int gibt. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 Mit einem Zeiger, das hält eine Speicheradresse. 756 00:36:30,280 --> 00:36:34,240 Aber was es bedeutet, hier, wo ist dass-- eine Zeichnung wird sich als nützlich erweisen. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Also in diesem Fall, wir haben einige value-- sagen wir vier. 759 00:36:45,980 --> 00:36:49,306 Vier ist an der Adresse ein. 760 00:36:49,306 --> 00:36:49,805 OK? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> Dieser erste bedeutet hier dass es ein Zeiger 2x. 763 00:36:56,170 --> 00:36:56,740 Richtig? 764 00:36:56,740 --> 00:36:57,628 Es ist einige Zeiger x. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 x kann etwas sein, was auch immer. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 Was auch immer x ist-- sagen x ist vier. 769 00:37:05,130 --> 00:37:07,280 Es wird in den Laden Speicheradresse hier. 770 00:37:07,280 --> 00:37:12,260 So int, Stern, ist x-- diese einige andere Schlitz in memory-- 771 00:37:12,260 --> 00:37:13,590 wer weiß, was das ist. 772 00:37:13,590 --> 00:37:15,430 Aber es geht um hier eine Adresse zu speichern. 773 00:37:15,430 --> 00:37:27,040 Also das wäre like-- in diesem Fall, was auch immer, 774 00:37:27,040 --> 00:37:32,630 bei 0x1-- gespeichert, was gespeichert wird unter der Adresse, die unsere Zeiger hält, 775 00:37:32,630 --> 00:37:35,280 hat mit passen was wir bezeichnet. 776 00:37:35,280 --> 00:37:40,330 So zumin 0x1, in diesem Fall ist dies x. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 Dies kann immer nur sein ein int, während wir mit diesem. 779 00:37:49,340 --> 00:37:52,950 >> Und falls wir weiteres 1J, unabhängig 780 00:37:52,950 --> 00:37:59,130 Adresse ist gespeichert mit einem y ein char-- gleiche Sache mit z sein. 781 00:37:59,130 --> 00:38:05,840 In der gleichen Weise, wenn Sie versuchen und tun INTX gleich 0,4, 782 00:38:05,840 --> 00:38:09,275 es geht um dich schreien und sein wie nein, Sie sagten, Sie wollten einen int. 783 00:38:09,275 --> 00:38:10,525 Dies soll ein int sein. 784 00:38:10,525 --> 00:38:11,900 Hören Sie auf, es ist ein Schwimmer zu machen. 785 00:38:11,900 --> 00:38:14,150 >> Also lassen Sie die Dinge sein, was sie sein wollen. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 Lassen Sie die Dinge selbst zu sein. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 So große Ding ist nur Welche Art von Zeiger 790 00:38:23,450 --> 00:38:26,101 ist es, das ist die einzige Sache, die Sie dort speichern kann. 791 00:38:26,101 --> 00:38:26,600 OK? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 Mit der Praxis, wie mit letzte Woche, alles 794 00:38:31,160 --> 00:38:32,817 scheint wirklich Art abstrakter. 795 00:38:32,817 --> 00:38:34,150 Wir werden einige Übung zu tun. 796 00:38:34,150 --> 00:38:36,760 Es sollte mehr Sinn machen. 797 00:38:36,760 --> 00:38:44,580 >> So Referenzierung und dereferencing-- es ist wirklich wichtig, diese gerade zu bekommen. 798 00:38:44,580 --> 00:38:46,630 Ich habe noch zu erfrischen hin und wieder. 799 00:38:46,630 --> 00:38:48,450 Und ich bin wie Warte, die man will ich? 800 00:38:48,450 --> 00:38:56,080 Also das kaufmännische wird tatsächlich geben Sie der Referenz oder Adresse. 801 00:38:56,080 --> 00:39:00,100 So ist es die Adresse im kehrt Speicher davon Variable gespeichert. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 Also, es wird tatsächlich zu Ihnen zurück hexadezimal, während Dereferenzierung es 804 00:39:07,020 --> 00:39:10,641 ist eigentlich los, um Ihnen die Daten, die dort gespeichert ist. 805 00:39:10,641 --> 00:39:11,140 OK? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 So werden wir ein Beispiel an wirklich schnell, oder tatsächlich nächsten. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> Ok. 810 00:39:19,150 --> 00:39:21,790 Also müssen wir wirklich denken sorgfältig darüber. 811 00:39:21,790 --> 00:39:23,860 Also hier haben wir einige Integer x. 812 00:39:23,860 --> 00:39:26,485 Ich werde versuchen, und ziehen Sie diese aus, um das Beste aus meinen Fähigkeiten. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 Also werden wir diesen Slot x haben. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 Und es ist die Speicherung fünf. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 Seine Adresse ist 0x4. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 Cool? 821 00:39:43,160 --> 00:39:44,100 Alles gut. 822 00:39:44,100 --> 00:39:45,470 >> So, jetzt haben wir diesen Zeiger. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 Es war hier. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 Und das Und-Zeichen gibt uns die Adresse von etwas. 827 00:39:57,560 --> 00:40:00,780 So, in diesem Fall ist es die Adresse x. 828 00:40:00,780 --> 00:40:01,875 Was ist die Adresse x? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- und dieser Zeiger auf 0x08. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 Cool? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 So kann man darüber nachdenken Zeiger, 04, weist nur hier. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 Und sie heißen Zeiger weil, wie wir mehr in diese, 837 00:40:25,740 --> 00:40:28,450 Sie gehen, um zu sehen, die auf die Dinge. 838 00:40:28,450 --> 00:40:31,470 Und einem Block zum anderen zeigen Block macht viel mehr Sinn. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 Also hier sind zwei. 841 00:40:33,890 --> 00:40:38,230 Und dann haben wir einige haben Kopie, die what-- 0x0c ist. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 Und es ist zu gehen Dereferenzierung unseren Zeiger. 844 00:40:43,420 --> 00:40:46,790 >> Also, was es sagen will, ist OK, hier ist unser Zeiger. 845 00:40:46,790 --> 00:40:53,090 Der Wert speichert er ist 0x04, Und was es sagt wird an diese Adresse gehen 846 00:40:53,090 --> 00:40:54,300 und sagen Sie mir, was drin ist. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 Also das ist effektiv was dieser Pfeil tut. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 Sie können sich das wie Ihre Sterne denken. 851 00:41:01,280 --> 00:41:05,410 Also OK, wenn wir Sterne, bedeutet dies, zu folgen. 852 00:41:05,410 --> 00:41:06,810 Gehen Sie zu dieser Adresse. 853 00:41:06,810 --> 00:41:11,430 Und das ist im Grunde nur folgende Dieser Pfeil auf diesen Speicher Brocken. 854 00:41:11,430 --> 00:41:15,380 Und geben Sie uns, was drin ist, was 5 ist. 855 00:41:15,380 --> 00:41:18,840 Es ist, warum unsere Kopie gleich 5 ist. 856 00:41:18,840 --> 00:41:20,120 Ist das sinnvoll? 857 00:41:20,120 --> 00:41:22,769 Hat jemand brauchen mich zu durchlaufen dass es noch einmal oder langsamer? 858 00:41:22,769 --> 00:41:24,560 Du willst mich zu gehen durch sie ein weiteres Mal? 859 00:41:24,560 --> 00:41:25,060 Ok. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 Wir werden es wieder neu zu zeichnen. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 Wenn wir beginnen, sind wir uns einig wir einige Teil des Speichers, die eine Variable ist 864 00:41:37,205 --> 00:41:40,890 x, die wir auf gleich 5. 865 00:41:40,890 --> 00:41:42,910 Wir kontrollieren nicht, wo es im Speicher ist. 866 00:41:42,910 --> 00:41:45,520 Also dieser Punkt ist nur willkürlich zugewiesen. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 Gut gibt es? 869 00:41:48,731 --> 00:41:49,230 Ok. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 Dann initialisieren wir einen Zeiger auf eine int. 872 00:41:53,330 --> 00:41:56,900 Deshalb ist es ist erlaubt, darauf hinzuweisen x, weil wir eine int hier. 873 00:41:56,900 --> 00:42:00,840 Wir haben ein anderes Stück Speicher, da dieser Zeiger 874 00:42:00,840 --> 00:42:03,485 ist eine Variable genau wie alles andere. 875 00:42:03,485 --> 00:42:06,615 Es ist willkürlich zugeordnet etwas Platz im Speicher. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 Und was es speichert die Adresse x. 878 00:42:10,830 --> 00:42:13,200 Ampersand bedeutet Adresse x. 879 00:42:13,200 --> 00:42:14,575 Also, was ist die Adresse von x? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> PUBLIKUM: Es ist zero-- 882 00:42:20,614 --> 00:42:21,280 Sprecher 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Also dann- letzte. 885 00:42:25,940 --> 00:42:30,650 Wir haben einige copy-- wieder nur eine weitere Variable. 886 00:42:30,650 --> 00:42:32,520 Lassen Sie uns also etwas beliebiger Stelle zuordnen. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 Und wir Dereferenzierung unseren Zeiger. 889 00:42:38,080 --> 00:42:42,490 Ein Stern bedeutet, gehen Sie zu der Adresse in meinem Zeiger gespeichert. 890 00:42:42,490 --> 00:42:44,480 Sagen Sie mir, was da ist. 891 00:42:44,480 --> 00:42:47,290 Also die Adresse gespeichert in unserem Zeiger ist 0x04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 So gehen wir an diese Adresse. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 Es ist auf diese Adresse zeigt. 896 00:42:54,590 --> 00:42:57,481 Was ist in diesem Speicherblock? 897 00:42:57,481 --> 00:42:57,980 Es ist eine fünf. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 Also das ist, was wir unseren Kopie zuordnen. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 Jeder gut? 902 00:43:04,860 --> 00:43:05,360 Cool. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Again-- Bildern. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Also die Verfolgung der Werte hier-- Ich bin gehen zu lassen, euch darüber nachdenken. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 Wir können ein anderes Bild zu zeichnen. 909 00:43:27,750 --> 00:43:31,260 Aber ich möchte, dass Sie versuchen, und Grund durch diese auf eigene Faust für eine Minute. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> Da sie nicht geben, uns ein Beispiel Adresse, 912 00:44:04,149 --> 00:44:06,940 Ich werde einfach kaufmännisches Und x-- tun was soll helfen fahren sie nach Hause. 913 00:44:06,940 --> 00:44:07,950 Ampersand bedeutet Adresse. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> So in der ersten, jeder gehen Sie mit der ersten Zeile. 916 00:44:12,360 --> 00:44:15,690 Einige x Satzes five-- einige Zufalls Schlitz in Erinnerung. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Int Sterne Zeiger gleich an die Adresse von x, nicht wahr? 919 00:44:23,200 --> 00:44:28,180 Int Sterne Zeiger erstellt dieser Block, ruft es Pointer, 920 00:44:28,180 --> 00:44:30,650 und weist es die Adresse x. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 Ich bin schrecklich Ampersands. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> Nun, was wir tun ist, dass wir sagen, OK, Dereferenzierung unseren Zeiger. 925 00:44:40,550 --> 00:44:42,760 Also gehen wir OK, was ist in unserem Zeiger? 926 00:44:42,760 --> 00:44:44,820 Es ist Kaufmanns-x. 927 00:44:44,820 --> 00:44:49,400 Zum Kaufmanns-x und weisen Sie es. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> So, jetzt ist Ampersand x werde 35 sein. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 Also im Grunde, wenn Sie unterwegs sind Dereferenzierung, gehen Sie auf OK. 932 00:45:05,174 --> 00:45:07,090 Du wirst sein Zeichnung Bilder wie diese. 933 00:45:07,090 --> 00:45:09,423 Du wirst sein Zeichnung Ihre Pfeile über, wo sie ist. 934 00:45:09,423 --> 00:45:16,030 So gehen an diesem Schlitz im Speicher und entweder gib mir diesen Wert zurück, oder ändern Sie es. 935 00:45:16,030 --> 00:45:21,620 In diesem Fall, da wir in diesem sind Wert, wir Zuordnung zu 35 sein. 936 00:45:21,620 --> 00:45:24,700 Während in der letzten ein, wenn Sie bemerken, wir 937 00:45:24,700 --> 00:45:27,680 wurden Zuweisen was war in hier um etwas anderes. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> So haben sie diesen fantastischen Tisch. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 Es ist nicht so schlimm. 942 00:45:36,890 --> 00:45:37,970 Ihr Jungs arbeiten daran. 943 00:45:37,970 --> 00:45:39,640 Ich werde es auf dem Brett ziehen. 944 00:45:39,640 --> 00:45:41,306 Wir werden es gemeinsam ausfüllen, OK? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 Also schnappen Sie etwas Papier, Halte ein Partner, der Arbeit beginnen. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 Ich werde eine bekommen größeres Stück Kreide. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 Denn es geht um eine Menge sein. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 Ok. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 PROFESSOR: OK. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 Beginnen wir mit der ersten Reihe starten. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 Wir werden dort starten, dann euch kann vielleicht durch einige mehr. 959 00:48:16,970 --> 00:48:17,870 Ok. 960 00:48:17,870 --> 00:48:19,810 a gleich b mal c, so was ist ein? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 Es ist nicht eine Fangfrage, das verspreche ich. 963 00:48:23,260 --> 00:48:24,440 >> STUDENT: 4 mal 5. 964 00:48:24,440 --> 00:48:25,420 >> PROFESSOR: 4 mal 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 Also, was ist b? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 STUDENT: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> PROFESSOR: und C? 971 00:48:31,043 --> 00:48:31,542 STUDENT: 5. 972 00:48:31,542 --> 00:48:32,083 PROFESSOR: 5. 973 00:48:32,083 --> 00:48:35,960 Und dann wird diese gerade dabei, Ampersand werden ein, kaufmännisches Und b, 974 00:48:35,960 --> 00:48:38,575 Und-Zeichen c, oder? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 Nicht schlecht. 977 00:48:40,596 --> 00:48:42,081 Es ist einfach genug. 978 00:48:42,081 --> 00:48:42,580 Ok. 979 00:48:42,580 --> 00:48:44,300 Also die nächste. 980 00:48:44,300 --> 00:48:48,725 A gleich a mal c, für den Fall, jemand nicht vertraut war mit dem. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 Ist jeder vertraut mit der Zeit entspricht? 983 00:48:53,300 --> 00:49:00,105 OK, alles means-- dies Abkürzung für a gleich a mal c. 984 00:49:00,105 --> 00:49:04,840 Sie können es auch tun, mit Teilung, Zusatz mit Subtraktion. 985 00:49:04,840 --> 00:49:12,130 Sie können A gleich zu tun, oder ein Plus gleich c bedeutet, dass ein gleich ein Plus C, A minus gleich 986 00:49:12,130 --> 00:49:15,190 c wäre ein gleich ein Minus c. 987 00:49:15,190 --> 00:49:16,690 Es ist nur syntaktischer Zucker. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> So, in diesem Fall wird eine gleich ist Male c uns was geben würde? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 Auch nicht eine Fangfrage. 992 00:49:28,186 --> 00:49:28,965 >> STUDENT: 100. 993 00:49:28,965 --> 00:49:29,300 >> PROFESSOR: 100. 994 00:49:29,300 --> 00:49:30,383 Hat etwas anderes ändern? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 Nein. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 Vielleicht werde ich endlich besser auf meine kaufmännische Und. 999 00:49:39,850 --> 00:49:42,047 >> STUDENT: OK, sorry, wie haben Sie 100? 1000 00:49:42,047 --> 00:49:42,630 PROFESSOR: OK. 1001 00:49:42,630 --> 00:49:46,594 Also ein gleich a ist mal c, so a mal c. 1002 00:49:46,594 --> 00:49:48,510 STUDENT: Oh, Sie verwenden ein für die previous-- 1003 00:49:48,510 --> 00:49:49,135 PROFESSOR: Ja. 1004 00:49:49,135 --> 00:49:51,450 Also das sind unsere letzten Werte. 1005 00:49:51,450 --> 00:49:53,990 Diese sind, was Sie sein sollten Verwendung, wie wir nach unten zu verschieben, OK. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 Also ist b die einzige Sache Wechsel, oder? 1008 00:50:01,520 --> 00:50:02,910 Also lasst uns in allem, was sonst noch zu füllen. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 B. Was ist b sein wird? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 Sein oder Nichtsein, das ist hier die Frage. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 Was also ist das da? 1015 00:50:20,240 --> 00:50:21,605 Was ist der Star pa tun? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> STUDENT: Code auf den Standort der pa. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> STUDENT: Nein, nicht ganz. 1020 00:50:27,480 --> 00:50:29,470 Das ist also ein d Referenz. 1021 00:50:29,470 --> 00:50:31,580 >> Student: b ist handed Wert pa. 1022 00:50:31,580 --> 00:50:37,340 >> PROFESSOR: Ja, so ist pa Die Adresse einer, oder? 1023 00:50:37,340 --> 00:50:42,430 So ist es verständlich zu, wobei a gespeichert und geben ihm den Wert. 1024 00:50:42,430 --> 00:50:43,884 Also, was ist b? 1025 00:50:43,884 --> 00:50:44,425 STUDENT: 100. 1026 00:50:44,425 --> 00:50:46,534 PROFESSOR: 100. 1027 00:50:46,534 --> 00:50:47,450 Perfect. 1028 00:50:47,450 --> 00:50:49,879 OK, so pc ist, was sich ändert. 1029 00:50:49,879 --> 00:50:51,170 Alles andere bleibt gleich. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 Was ist PC sein wird? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 Einfache Zuweisung. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 Pc gleich pa, und was ist pa? 1036 00:51:05,990 --> 00:51:07,049 >> STUDENT: Ampersand ein. 1037 00:51:07,049 --> 00:51:07,840 PROFESSOR: Perfect. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 Jetzt bekommen wir interessant. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 OK, lass uns diesen einen brechen. 1042 00:51:15,230 --> 00:51:21,110 Erstens, was ist b mal c, weil das ist, der einfache Teil dieses einen, nicht wahr? 1043 00:51:21,110 --> 00:51:22,360 B mal c ist-- 1044 00:51:22,360 --> 00:51:23,320 >> STUDENT: 500. 1045 00:51:23,320 --> 00:51:28,880 >> PROFESSOR: Ja, so was dieses tun, 1046 00:51:28,880 --> 00:51:33,705 Wenn es Sterne pb, ist, was ändert sich? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> STUDENT: Was ist in the-- 1049 00:51:37,242 --> 00:51:38,200 PROFESSOR: Was ist in b? 1050 00:51:38,200 --> 00:51:41,340 STUDENT: Was ist in dem Raum dass pb zeigt auf. 1051 00:51:41,340 --> 00:51:43,406 PROFESSOR: Und pb wird Zeige zu-- 1052 00:51:43,406 --> 00:51:43,905 STUDENT: B. 1053 00:51:43,905 --> 00:51:46,740 PROFESSOR: B. So ist die einzige Sache Wechsel ist b, rechts. 1054 00:51:46,740 --> 00:51:50,800 Also b mal c, 500. 1055 00:51:50,800 --> 00:51:52,367 Also das ist, was ändert sich nun. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 Cool. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 Lovely. 1060 00:52:00,840 --> 00:52:01,905 Ihr Jungs geht es gut. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 Alles klar, brechen diese eine nach unten. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 C verändert, oder? 1065 00:52:09,630 --> 00:52:11,530 So können wir bei allem, was sonst noch zu füllen. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 Mal sehen. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 Ok. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 Wir wissen, dass c wird den sein Produkt zweier Zahlen, nicht wahr? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 Welche zwei Zahlen, obwohl? 1074 00:52:27,980 --> 00:52:28,970 >> STUDENT: A und C? 1075 00:52:28,970 --> 00:52:31,930 >> PROFESSOR: So eine ist rechts für den ersten. 1076 00:52:31,930 --> 00:52:34,385 Also sind wir d Referenzierung P einer, oder? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 P eines Punkte auf a, so wissen wir, dass das wird 100 mal was? 1079 00:52:42,870 --> 00:52:46,232 Mal was tut pc Punkt? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 Verweist auf eine. 1082 00:52:48,740 --> 00:52:55,038 Also 100 mal 100 ist 10.000. 1083 00:52:55,038 --> 00:52:56,170 Macht das Sinn macht? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 Cool. 1086 00:52:58,200 --> 00:53:00,500 Geraden, Jungs, letzte Reihe. 1087 00:53:00,500 --> 00:53:01,190 Ok. 1088 00:53:01,190 --> 00:53:02,160 Was ändert sich hier? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> STUDENT: A. 1091 00:53:06,935 --> 00:53:09,435 PROFESSOR: A. Perfect, so alles andere kann gleich bleiben. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 Ok. 1094 00:53:16,710 --> 00:53:17,970 Und was ist ein? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 So ist es ein mal was? 1097 00:53:26,060 --> 00:53:27,120 Dies ist star pb. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 Also Sterne pb bedeutet hier pb, pb Punkte auf b. 1100 00:53:34,490 --> 00:53:35,370 >> STUDENT: 500. 1101 00:53:35,370 --> 00:53:36,230 >> PROFESSOR: 500. 1102 00:53:36,230 --> 00:53:39,236 Wir haben also 500 mal 100. 1103 00:53:39,236 --> 00:53:41,758 Das ist 50.000. 1104 00:53:41,758 --> 00:53:43,216 Puh! 1105 00:53:43,216 --> 00:53:45,646 Schau dir das an. 1106 00:53:45,646 --> 00:53:47,982 >> STUDENT: Warum haben wir die & c für den last-- 1107 00:53:47,982 --> 00:53:48,690 PROFESSOR: Sorry. 1108 00:53:48,690 --> 00:53:50,080 STUDENT: Oh, OK. 1109 00:53:50,080 --> 00:53:51,600 PROFESSOR: Meine schlecht. 1110 00:53:51,600 --> 00:53:52,890 Viele Schreiben. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 Jeder gut? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 Nicht schlecht, oder? 1115 00:53:56,660 --> 00:53:58,490 Nur dauert ein wenig während die durchzuarbeiten. 1116 00:53:58,490 --> 00:54:01,080 Wenn Sie es brechen, verstehen, was die einzelnen Teile 1117 00:54:01,080 --> 00:54:03,197 wird zu-- als Verweisung mit allem, was es ist, 1118 00:54:03,197 --> 00:54:05,780 yes-- es auf die kleine Pause Probleme und dann rekombinieren, 1119 00:54:05,780 --> 00:54:07,345 und Sie einige tolle Sachen machen kann. 1120 00:54:07,345 --> 00:54:08,970 Es sind die Antworten, aber wir haben das. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 Zeigerarithmetik. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 Ah. 1125 00:54:14,460 --> 00:54:15,510 Meine Hände sind alle kalkhaltigen. 1126 00:54:15,510 --> 00:54:17,970 So addiert oder subtrahiert int stellt den Zeiger 1127 00:54:17,970 --> 00:54:21,890 durch die Größe von der Art des Zeigers. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 Erinnere dich, wie jede Art hat eine andere Größe? 1130 00:54:28,390 --> 00:54:34,890 So wie ein Doppel- oder ein langer lang ist acht und int ist vier, sondern char gehört. 1131 00:54:34,890 --> 00:54:38,360 >> Also, was Sie tun möchten, ist-- eine Sache zu erinnern 1132 00:54:38,360 --> 00:54:44,080 ist nur, dass, wie viel Ihr Zeigerwert tatsächlich ändert 1133 00:54:44,080 --> 00:54:46,550 erfolgt nach Maßgabe des Zeigertyp ist. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 Jeder gute mit diesem? 1136 00:54:51,820 --> 00:54:52,760 Kann ich löschen kann? 1137 00:54:52,760 --> 00:54:53,440 Wir sind gut? 1138 00:54:53,440 --> 00:54:53,940 Genial. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> Also, wenn wir einige Zeiger dass-- das wird be-- Ich bin 1141 00:55:07,501 --> 00:55:08,834 werde es ein int-Zeiger zu machen. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 Er speichert diese. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 Wenn Sie Zeiger sagen würde plus eins, was es tun wird 1146 00:55:20,170 --> 00:55:23,420 wird, es wird aktualisiert es durch die Größe eines int 1147 00:55:23,420 --> 00:55:25,950 denn das ist die Zeigertyp ist. 1148 00:55:25,950 --> 00:55:28,260 >> Mit C ist alles sehr streng und geregelt. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 Die int-Zeiger wird sich durch aktualisieren Die Höhe des Raumes ein int würde. 1151 00:55:35,260 --> 00:55:36,260 Ein int vier Bytes. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> Also, was würde dies in zu verwandeln? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 Sie sind einfach nur mit vier auf diese. 1156 00:55:44,390 --> 00:55:50,040 Nun möchte Ihren Zeiger be-- OK. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> Also, wenn es ein Zeichen und wir taten Zeiger plus eins, was wäre das jetzt sein? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 Wenn es started-- vorgibt wir started-- jetzt ist es 0x08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 Lassen Sie uns jetzt sagen, dass dies ein char-Zeiger, und wir hinzugefügt ein. 1163 00:56:10,850 --> 00:56:11,850 Was würde es ändern? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 Wie viele Bytes ist ein char? 1166 00:56:16,030 --> 00:56:16,680 >> PUBLIKUM: One. 1167 00:56:16,680 --> 00:56:17,304 >> Sprecher 1: One. 1168 00:56:17,304 --> 00:56:18,309 PUBLIKUM: Also 0x09. 1169 00:56:18,309 --> 00:56:19,600 Sprecher 1: So wäre es neun sein. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 Also einfach etwas zu erinnern. 1172 00:56:23,820 --> 00:56:28,340 Gerade wenn man ein hinzuzufügen, ist es nicht Hinzufügen eines, es sei denn, es ist ein Zeichen. 1173 00:56:28,340 --> 00:56:34,190 Es ist das Hinzufügen, wie viele Bytes der Typ, der sie ist, 1174 00:56:34,190 --> 00:56:36,960 weshalb wir haben diese Gleichung hier oben. 1175 00:56:36,960 --> 00:56:40,190 So ist es int fache Größe von der Art des Zeigers. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> Also das Beispiel haben wir hier. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 y wurde auf diesen Wert, 0x4 zugeordnet, als wir y zzgl gleich eins. 1180 00:56:54,430 --> 00:56:56,830 Was ist drin, was ist in x, ändert sich nicht. 1181 00:56:56,830 --> 00:56:58,610 Was bedeutet Veränderung ist, was in y. 1182 00:56:58,610 --> 00:57:04,980 Die in y gespeicherte Adresse durch vier aktualisiert weil es vier Bytes in einem int 1183 00:57:04,980 --> 00:57:06,097 und es ist ein int-Zeiger. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> In Ordnung. 1186 00:57:07,790 --> 00:57:09,123 So, jetzt haben wir eine andere Übung. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 Die Frage ist also, was gedruckt wird. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 Irgendwelche Ideen? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> PUBLIKUM: Die Anzahl der Zeichen in glückliche Katze? 1193 00:57:43,699 --> 00:57:44,490 Sprecher 1: Genau. 1194 00:57:44,490 --> 00:57:45,531 So gerne mit Ihrem String. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 Hat jeder das bekommen? 1197 00:57:48,260 --> 00:57:49,509 Wollen wir, um durch sie gehen? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> Ja, OK. 1200 00:57:52,010 --> 00:57:57,385 Also, was haben wir hier-- I wie dieses so viel mehr. 1201 00:57:57,385 --> 00:57:59,340 Ich weiß nicht zu haben, [Unverständlich] lächerlich. 1202 00:57:59,340 --> 00:58:01,690 >> So haben wir unsere String hier, glückliche Katze. 1203 00:58:01,690 --> 00:58:02,950 Lovely. 1204 00:58:02,950 --> 00:58:05,080 Wir haben einige Zähler, wir die Verfolgung. 1205 00:58:05,080 --> 00:58:11,430 Also haben wir etwas char * Zeiger dass nur gleich str gesetzt. 1206 00:58:11,430 --> 00:58:14,320 Was dies tut, ist es Zuweisen einige Zeiger 1207 00:58:14,320 --> 00:58:16,380 an den Anfang der Zeichenfolge. 1208 00:58:16,380 --> 00:58:19,840 Denn ich bin mir sicher, da es wurde im Vortrag erwähnt, 1209 00:58:19,840 --> 00:58:22,290 wir haben euch dies gegeben Datentyp namens String. 1210 00:58:22,290 --> 00:58:29,070 >> Aber wirklich Saiten sind nur ein Array von-- wie char *. 1211 00:58:29,070 --> 00:58:32,330 Es ist ein Zeiger auf eine Reihe von Zeichen die zusammenhängenden Speicher sind. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 Also das setzt sie nur gleich jede Saite ist 1214 00:58:36,280 --> 00:58:38,980 von denen identifiziert Das erste Zeichen ist. 1215 00:58:38,980 --> 00:58:42,710 So ist dies nur die Einstellung irgendwann gleich zu Beginn der Zeichenfolge. 1216 00:58:42,710 --> 00:58:44,130 Jeder gute da? 1217 00:58:44,130 --> 00:58:44,960 Cool. 1218 00:58:44,960 --> 00:58:49,840 >> Das ist also unsere Dereferenzierung Zeiger. 1219 00:58:49,840 --> 00:58:53,760 Also es ist eigentlich los, um geben Sie uns etwas Wert in hier, 1220 00:58:53,760 --> 00:58:55,610 in unserem String, wir reden. 1221 00:58:55,610 --> 00:58:58,342 Und wir sind so lange sagen es ist nicht null-Terminator. 1222 00:58:58,342 --> 00:59:00,550 So weitermachen, bis Sie an das Ende der Zeichenkette. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 Aktualisieren Sie Ihre Zeiger um eins. 1225 00:59:04,190 --> 00:59:09,250 Also r, es wird tatsächlich durch eine Aktualisierung jedes Mal, denn dies ist ein Zeichen, 1226 00:59:09,250 --> 00:59:09,820 die char *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> Also es geht um durch zu gehen. 1229 00:59:12,340 --> 00:59:13,290 Es wird zu aktualisieren. 1230 00:59:13,290 --> 00:59:16,705 Also das erste Mal in dieser verläuft, es wird hier bei h betragen. 1231 00:59:16,705 --> 00:59:17,590 Es wird zu aktualisieren. 1232 00:59:17,590 --> 00:59:18,185 >> Es wird ein a sein. 1233 00:59:18,185 --> 00:59:21,310 Es wird eine p, y, und so weiter und so fort. 1234 00:59:21,310 --> 00:59:22,300 Wir Zähler zu aktualisieren. 1235 00:59:22,300 --> 00:59:26,160 Wenn er das Ende erreicht, wird es nur druckt, wie weit es gekommen. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 Ja. 1238 00:59:28,050 --> 00:59:31,475 >> PUBLIKUM: Also Sie zählt der Raum als einer, oder? 1239 00:59:31,475 --> 00:59:31,974 Ok. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> Sprecher 1: Denken Sie so. 1242 00:59:35,222 --> 00:59:36,830 Ist das ein question-- 1243 00:59:36,830 --> 00:59:37,746 >> PUBLIKUM: [unverständlich]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> Sprecher 1: Keine Sorge. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 Das habe ich getan. 1248 00:59:42,736 --> 00:59:47,710 Alles klar, so eine Sache, ich verstehen ist, dass mit einer Reihe, 1249 00:59:47,710 --> 00:59:51,736 Sie können auch behandeln es als ein Zeiger, weil Arrays sind nur 1250 00:59:51,736 --> 00:59:52,860 kontinuierliche Spots Speicher. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> So können Sie es behandeln die gleiche Weise. 1253 00:59:56,380 --> 00:59:59,000 Sie können sie zu manipulieren mit Zeigern, auch. 1254 00:59:59,000 --> 01:00:04,770 Also anstatt das zu tun, in diesem Fall die analoge Sache 1255 01:00:04,770 --> 01:00:07,490 wäre Array 0 gleich 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> Aber in der gleichen Weise, ein String bestimmt 1258 01:00:15,210 --> 01:00:18,740 vom Beginn wobei seine erste Zeichen ist, 1259 01:00:18,740 --> 01:00:22,270 eine Anordnung bestimmt wird durch wobei das erste Element ist. 1260 01:00:22,270 --> 01:00:25,120 Weil wir wissen, wir sind gewährleistet ist, dass diese 1261 01:00:25,120 --> 01:00:27,985 gehen kontinuierlich sein Speicherblöcke. 1262 01:00:27,985 --> 01:00:29,360 Das ist, was erlaubt uns, dies zu tun. 1263 01:00:29,360 --> 01:00:31,193 Wir wissen, dass sie kontinuierliche Speicherblöcke. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> Also in diesem Fall, durch Dereferenzierung nur Array, das uns sagt, 1266 01:00:36,500 --> 01:00:40,800 OK, an den Anfang der zu gehen Ihr Array, das hier ist. 1267 01:00:40,800 --> 01:00:42,640 So können Sie es gleich eins setzen können. 1268 01:00:42,640 --> 01:00:48,610 Und in diesem Fall, was auch immer Ihr Array Typ ist, wenn Sie es aktualisieren, indem man, 1269 01:00:48,610 --> 01:00:50,830 Das ist genau wie die Aktualisierung es auf die nächste Index. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 Sie können das tun, weil Sie wissen, was in Ihrem Array. 1272 01:00:56,360 --> 01:00:59,770 So weiß es, wie viel zu aktualisieren Sie den Mauszeiger durch, 1273 01:00:59,770 --> 01:01:02,925 welche Adresse um es so zu aktualisieren, dass Sie bei der nächsten Steckplatz. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> Also das ist nur eine andere Art der Schreibanordnung 0 gleich 1 ist, 1276 01:01:09,400 --> 01:01:15,114 Feld 1 gleich 2, array Halterung 2 gleich 3. 1277 01:01:15,114 --> 01:01:16,780 Es ist nur ein weiterer Weg, um darüber nachzudenken. 1278 01:01:16,780 --> 01:01:19,600 Weil sie stetig sind Blöcke im Speicher, 1279 01:01:19,600 --> 01:01:21,830 Sie können sie entweder auf die durch die Anordnung notation-- 1280 01:01:21,830 --> 01:01:24,390 was ich persönlich finden easier-- aber vielleicht 1281 01:01:24,390 --> 01:01:27,347 Sie manipulieren müssen streng von Speicheradressen. 1282 01:01:27,347 --> 01:01:28,930 Und das ist so, wie Sie das tun würde. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 Art eher wie ein coole Sache, die Sie tun können 1285 01:01:32,630 --> 01:01:35,213 gegenüber vielleicht nicht etwas, was Sie sind tatsächlich zu implementieren. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> Ich benutze es in 61. 1288 01:01:38,630 --> 01:01:41,710 Ihr Jungs wahrscheinlich nicht brauchen darüber allzu viele Sorgen. 1289 01:01:41,710 --> 01:01:43,693 Aber wenn Sie interessiert sind, nehmen 61 im nächsten Jahr. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 Wir sind auf der Zielgeraden Jungs. 1292 01:01:46,560 --> 01:01:47,510 Ich weiß, es ist lang. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 Dynamic Memory Allocation-- so dass wir wissen, dass man 1295 01:01:58,880 --> 01:02:01,790 Sachen, wo wir während gesprochen unseren ersten Abschnitt zusammen, 1296 01:02:01,790 --> 01:02:04,560 sahen wir uns an einem Swap Funktion wo es 1297 01:02:04,560 --> 01:02:08,010 außerhalb des Umfangs der Hauptfunktion. 1298 01:02:08,010 --> 01:02:14,370 Und wir waren in diesen Werten vorbei dass waren effektiv Exemplaren. 1299 01:02:14,370 --> 01:02:20,570 >> Und sobald Swap abgeschlossen Ausführen, es gerade verlassen einen Stapel. 1300 01:02:20,570 --> 01:02:22,830 Denken Sie daran, wir haben ein Stapelrahmen für Swap. 1301 01:02:22,830 --> 01:02:26,070 Es hinterlässt und diejenigen Werte verlassen mit ihm. 1302 01:02:26,070 --> 01:02:27,050 Und sie waren weg. 1303 01:02:27,050 --> 01:02:28,615 Wir konnten nichts tun, mit ihnen und wir waren traurig, 1304 01:02:28,615 --> 01:02:29,989 weil wir unsere Werte nicht tauschen. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> Aber mit C, wie ich bereits erwähnt, können Sie haben viel Macht über Speicher. 1307 01:02:36,560 --> 01:02:43,310 Also, was Sie tun können, ist, dass man zuteilen Dinge auf dem Heap hier 1308 01:02:43,310 --> 01:02:46,830 das wird dort bis zu bleiben Sie ihnen sagen etwas anderes. 1309 01:02:46,830 --> 01:02:48,280 >> Sie sind wie gute Kinder. 1310 01:02:48,280 --> 01:02:49,150 Sie bleiben dort. 1311 01:02:49,150 --> 01:02:50,270 Sie haben nicht zu verlassen. 1312 01:02:50,270 --> 01:02:52,750 Sie werden dort bleiben, bis Sie wie, OK, Sie weggehen kann. 1313 01:02:52,750 --> 01:02:55,920 >> Während die Dinge auf den Stapel, who-- sie sind wie ungezogene Kinder. 1314 01:02:55,920 --> 01:02:59,160 Sie werden nur weglaufen, wenn Sie wollen, da zu sein und dann sind sie weg. 1315 01:02:59,160 --> 01:03:00,160 Sie können nicht sie zurück. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> Also der Heap ist-- wir zu gehen reden über malloc und free, die 1318 01:03:07,187 --> 01:03:08,895 Ich bin sicher, ihr Jungs etwa in der Vorlesung gehört. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 Und das ist im Grunde eine Art und Weise sehr persistent Daten haben. 1321 01:03:14,210 --> 01:03:18,920 So können Sie die Daten halten können so lange, wie Sie wollen. 1322 01:03:18,920 --> 01:03:19,546 Mhm. 1323 01:03:19,546 --> 01:03:21,475 >> PUBLIKUM: Können Sie Heap definieren und zu stapeln? 1324 01:03:21,475 --> 01:03:24,030 Sind sie wie Orte, Dinge zu setzen? 1325 01:03:24,030 --> 01:03:26,630 >> Sprecher 1: So sind sie grundsätzlich just-- sie 1326 01:03:26,630 --> 01:03:29,530 Im übrigen verweisen wir nur auf den Speicher. 1327 01:03:29,530 --> 01:03:37,300 So Heap nur Orte, wo Speicher dynamisch zugewiesen, 1328 01:03:37,300 --> 01:03:40,960 wohin Stapel bezieht mehr Frames stapeln 1329 01:03:40,960 --> 01:03:45,950 die mehr von zentraler Bedeutung für die sind Funktionen, die tatsächlich ausgeführt werden. 1330 01:03:45,950 --> 01:03:47,200 Sie haben nicht wirklich Kontrolle. 1331 01:03:47,200 --> 01:03:50,690 >> Der große Unterschied, Kontrolle haben Sie über den Haufen, wenn Sie wollen. 1332 01:03:50,690 --> 01:03:52,710 Sie haben weniger Kontrolle über den Stack. 1333 01:03:52,710 --> 01:03:55,030 Der Stapel hängt von der Funktionen, die ausgeführt werden, 1334 01:03:55,030 --> 01:03:58,320 und die Reihenfolge, in der sie laufen, und wie die Dinge zurückgekehrt. 1335 01:03:58,320 --> 01:04:01,290 Während bei den Haufen, als wir werden sehen, man kann sagen, 1336 01:04:01,290 --> 01:04:06,639 OK, ich will diesen Wert zu sein herum, bis ich sage Ihnen etwas anderes. 1337 01:04:06,639 --> 01:04:08,180 Sie sind nicht gestattet, es loszuwerden. 1338 01:04:08,180 --> 01:04:09,300 Sie sind nicht erlaubt, es zu überschreiben. 1339 01:04:09,300 --> 01:04:11,675 Du wirst es herum zu halten so lange wie ich dir sage. 1340 01:04:11,675 --> 01:04:15,780 Sie erhalten zu der Chef in der Halde zu sein, während die stack-- vielleicht, wenn Sie 1341 01:04:15,780 --> 01:04:18,080 wie finagle Ihren Weg können Sie der Chef zu sein. 1342 01:04:18,080 --> 01:04:19,340 Aber nicht ganz. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 Und es ist wirklich nur Speicher. 1345 01:04:22,070 --> 01:04:24,260 Es ist nur verschiedene Wege der Bezug auf Speicher. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> Cool. 1348 01:04:26,400 --> 01:04:28,630 Also mit diesem, wie man steuern Sie Ihr Gedächtnis. 1349 01:04:28,630 --> 01:04:32,070 Es ist mit malloc, die Sie gehen zu bekommen, um zu verwenden. 1350 01:04:32,070 --> 01:04:37,100 So ist es nur kurz für Speicherzuweisung. 1351 01:04:37,100 --> 01:04:38,459 Das ist alles, es ist. 1352 01:04:38,459 --> 01:04:41,250 Es gibt eine Reihe von anderen kühlen Funktionen, die alloc am Ende haben, 1353 01:04:41,250 --> 01:04:42,750 und sie stehen für verschiedene Dinge. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> Also, wenn Sie Speicherplatz benötigen das braucht Ihre aktuelle Funktion überdauern, so 1356 01:04:49,050 --> 01:04:51,010 dass, wenn Ihre aktuelle Funktion läuft weg, 1357 01:04:51,010 --> 01:04:55,774 Sie haben immer noch die Daten, die Sie malloc verwenden daraus bekam, Sie wollen. 1358 01:04:55,774 --> 01:04:57,190 Das wird es auf dem Heap zu initialisieren. 1359 01:04:57,190 --> 01:05:00,140 Und wie ich schon sagte, und halten sagen, du wirst es dort zu halten 1360 01:05:00,140 --> 01:05:03,050 bis Sie es anders zu sagen, Das ist das Wichtigste hier. 1361 01:05:03,050 --> 01:05:08,450 >> So eine Sache zu bemerken, und das ist in der Regel wirklich wichtig, 1362 01:05:08,450 --> 01:05:13,620 ist, dass diese sizeof ist super nützlich zu bedienen 1363 01:05:13,620 --> 01:05:16,440 denn je nach dem Typ der Maschine, die Sie laufen, 1364 01:05:16,440 --> 01:05:22,470 kann es unterschiedliche Mengen haben Speicher, die es braucht. 1365 01:05:22,470 --> 01:05:26,870 Also immer auf die Größe der so verwenden möchten, dass Sie maschinenabhängig sind nicht, 1366 01:05:26,870 --> 01:05:30,300 so dass Ihr Code laufen auf jedem Rechner. 1367 01:05:30,300 --> 01:05:32,360 >> Und das ist nur ein Teil schreiben guten Code. 1368 01:05:32,360 --> 01:05:34,610 Wenn es auf einer Maschine, aber nicht von den anderen, 1369 01:05:34,610 --> 01:05:36,440 Wie hilfreich war das Programm? 1370 01:05:36,440 --> 01:05:38,420 Also Sie wollen immer stellen Sie sicher, und verwenden Sie sizeof. 1371 01:05:38,420 --> 01:05:41,306 >> PUBLIKUM: Also das ist wie die Größe von 10 Zoll [unverständlich]? 1372 01:05:41,306 --> 01:05:43,698 >> Sprecher 1: Dies ist die Größe von 10 int. 1373 01:05:43,698 --> 01:05:44,197 ja. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 Also Größe ints zurückkehren wie viel kostet ein Int. 1376 01:05:48,830 --> 01:05:51,530 Oder die Größe der char, wie viel kostet ein Zeichen nehmen. 1377 01:05:51,530 --> 01:05:54,150 Und dann, wie viele Blöcke davon wollen Sie? 1378 01:05:54,150 --> 01:05:57,590 >> Also in diesem Fall, etwas wollen wir dass wir 10 ints zu speichern. 1379 01:05:57,590 --> 01:06:00,240 Und es wird unabhängig arbeiten der Maschine, die ist cool. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 Also, wie viele Bytes dass tatsächlich geben Ihnen? 1382 01:06:04,846 --> 01:06:06,190 Schnell math. 1383 01:06:06,190 --> 01:06:06,787 >> PUBLIKUM: 40. 1384 01:06:06,787 --> 01:06:07,370 Sprecher 1: 40. 1385 01:06:07,370 --> 01:06:07,869 Genau. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 Also eine andere große Sache. 1388 01:06:12,030 --> 01:06:14,840 Pointer oder malloc NULL zurück. 1389 01:06:14,840 --> 01:06:17,910 >> Also noch einmal, immer überprüfen, sehen, ob es wieder null 1390 01:06:17,910 --> 01:06:19,620 bevor Sie versuchen und tun etwas mit ihm. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 Wenn Sie versuchen, und Dereferenzierung dieser Zeiger jetzt, 1393 01:06:27,350 --> 01:06:29,720 es nur geht, um segfault weil Sie ging und versuchte 1394 01:06:29,720 --> 01:06:31,730 zu berühren null, wenn Sie nicht haben sollte. 1395 01:06:31,730 --> 01:06:34,000 So überprüfen Sie immer für null. 1396 01:06:34,000 --> 01:06:36,075 Auch alles, was Sie tun können. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> Es könnte null zurück. 1399 01:06:39,720 --> 01:06:42,740 Es wird null zurück, wenn Sie entweder aus dem Raum, oder warum auch immer 1400 01:06:42,740 --> 01:06:44,350 es lief in einige Speicher Bug. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 Es manchmal nur null zurück. 1403 01:06:47,510 --> 01:06:48,990 So müssen Sie nur noch dafür zu prüfen. 1404 01:06:48,990 --> 01:06:51,050 Das ist alles, diese Folie ist selbstverständlich. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 Und dann, was wir haben Hier ist ein Aufruf zu befreien. 1407 01:06:55,240 --> 01:07:00,550 So in der gleichen Weise, wenn man Öffnen einer Datei müssen Sie eine Datei schließen, 1408 01:07:00,550 --> 01:07:04,340 wenn Sie malloc Speicher, Sie müssen Sie den Speicher wieder frei. 1409 01:07:04,340 --> 01:07:06,530 Und euch erhalten um wirklich coole Sachen zu tun. 1410 01:07:06,530 --> 01:07:09,624 >> Und es gibt ein Programm, das Sie zu laufen sehen, wenn Sie jemals Speicher verliert. 1411 01:07:09,624 --> 01:07:11,040 Aber Sie wollen nicht zu Speicherverlust. 1412 01:07:11,040 --> 01:07:11,820 Es ist wirklich schlimm. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 Nur einanderbringen. 1415 01:07:15,020 --> 01:07:20,939 >> Es ist schlimm, um gerade wie Programmierung zu tun weise für Design-Effizienz. 1416 01:07:20,939 --> 01:07:22,980 Aber es ist auch nur irgendwie Schlecht für Ihren Computer. 1417 01:07:22,980 --> 01:07:26,780 Also einfach kostenlos Dinge wenn Sie sie malloc. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> Ihr Jungs sehen die Symmetrien hier. 1420 01:07:30,210 --> 01:07:31,180 Super einfach. 1421 01:07:31,180 --> 01:07:33,010 Einfach kostenlos und dann was auch immer Sie den Mauszeiger, 1422 01:07:33,010 --> 01:07:34,843 was auch immer der Name Ihr Zeiger ist, und es 1423 01:07:34,843 --> 01:07:36,710 kümmert sich befreien für Sie. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 Cool. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> Dann haben wir das. 1428 01:07:42,530 --> 01:07:44,770 Also werden wir gerade dabei, Spaziergang durch dieses Programm. 1429 01:07:44,770 --> 01:07:46,560 Und dann hast du Jungs sind fertig. 1430 01:07:46,560 --> 01:07:50,240 >> Also [unverständlich] nur Haupt. 1431 01:07:50,240 --> 01:07:51,690 So haben wir einige int * Zeiger. 1432 01:07:51,690 --> 01:07:53,648 So haben wir einen Zeiger das wird ints halten. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 Und wie viele ints wird es zu halten? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 Nur eine. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 Größe eines int. 1439 01:08:01,100 --> 01:08:03,900 >> Wir überprüfen, ob zu sehen Zeiger ist null, weil es 1440 01:08:03,900 --> 01:08:06,130 ist, wir sagen nichts tun wollen. 1441 01:08:06,130 --> 01:08:07,065 Es ist schlimm. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 Also haben wir einige Fehler vergriffen Speicher, sehr häufig zurückkehren 1, 1444 01:08:12,130 --> 01:08:14,260 wie ihr Jungs es gewohnt sind. 1445 01:08:14,260 --> 01:08:17,390 >> Und dann haben wir hier, wir Dereferenzierung unseren Zeiger. 1446 01:08:17,390 --> 01:08:22,840 Das heißt also, wir gehen zu speichern etwas an der Stelle, die uns gegeben. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 Int * Zeiger oder malloc, kehrt der Adresse, wo es beiseite dies 1449 01:08:30,830 --> 01:08:31,750 Speicher für Sie. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 So ist es im Grunde Geben Sie, wenn Sie like-- 1452 01:08:34,800 --> 01:08:38,149 denke über ein Bündel von Häuser in einer Nachbarschaft 1453 01:08:38,149 --> 01:08:40,640 dass Sie setzen wollen Ihre Möbel in, malloc 1454 01:08:40,640 --> 01:08:43,850 ist wie OK, erhalten Sie zu gehen, um drei zu beherbergen. 1455 01:08:43,850 --> 01:08:45,800 Und es gibt Ihnen die Adresse des Hauses drei. 1456 01:08:45,800 --> 01:08:48,775 >> So, jetzt dieses Recht, diese Zeiger speichert eine Adresse, 1457 01:08:48,775 --> 01:08:50,149 speichert die Adresse Ihres Hauses. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * Ptr Mittel, OK, ich bin bei mir zu Hause. 1460 01:08:54,640 --> 01:08:55,326 Cool. 1461 01:08:55,326 --> 01:08:56,580 Ich muss einige integer zu bekommen. 1462 01:08:56,580 --> 01:08:59,229 >> So können Sie für jemanden fragst Sie Möbel jetzt zu geben. 1463 01:08:59,229 --> 01:09:00,430 So erhalten Sie eine int. 1464 01:09:00,430 --> 01:09:05,100 Und es bringt es auf den Zeiger wo es auf den Hinweis. 1465 01:09:05,100 --> 01:09:08,670 >> Und dann ist es nur Drucke heraus trat, wohin. 1466 01:09:08,670 --> 01:09:11,060 Und wieder die Referenz. 1467 01:09:11,060 --> 01:09:15,649 Also das ist, wie Sie ging an diesem Adresse und Sie sahen, was da war. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 Cool? 1470 01:09:17,630 --> 01:09:20,174 >> Und dann natürlich befreien wir unsere Zeiger. 1471 01:09:20,174 --> 01:09:21,590 Vergessen Sie nicht, Ihren Zeiger zu befreien. 1472 01:09:21,590 --> 01:09:22,933 Vergessen Sie nicht, für null überprüfen. 1473 01:09:22,933 --> 01:09:24,349 Vergessen Sie nicht, Ihren Zeiger zu befreien. 1474 01:09:24,349 --> 01:09:27,270 Sie haben zwei Dinge, die Sie daran erinnern, von dies, oder dass Sie sollten daran denken. 1475 01:09:27,270 --> 01:09:27,770 Ja. 1476 01:09:27,770 --> 01:09:31,590 PUBLIKUM: [unverständlich] Zeug so, die char * s. 1477 01:09:31,590 --> 01:09:33,760 Wie kommen wir nie frei diejenigen? 1478 01:09:33,760 --> 01:09:34,529 >> Sprecher 1: Hm? 1479 01:09:34,529 --> 01:09:36,450 >> PUBLIKUM: Sind diejenigen die es geben? 1480 01:09:36,450 --> 01:09:39,160 Du hast gesagt, Saiten genau wie char * s, oder? 1481 01:09:39,160 --> 01:09:41,200 Also, warum nicht wir frei Saiten? 1482 01:09:41,200 --> 01:09:43,204 >> Sprecher 1: Sie nur kostenlos, wenn Sie mallocing. 1483 01:09:43,204 --> 01:09:44,620 PUBLIKUM: Oh, wenn Sie mallocing bist. 1484 01:09:44,620 --> 01:09:47,399 Sprecher 1: So malloc und frei sind zwei Dinge, 1485 01:09:47,399 --> 01:09:49,000 dass Sie sollten immer zusammen. 1486 01:09:49,000 --> 01:09:51,630 f offen, f nahe, zwei Dinge Sie sollten zusammen haben. 1487 01:09:51,630 --> 01:09:54,471 In diesen beiden Fällen prüfen null. 1488 01:09:54,471 --> 01:09:54,971 Ja. 1489 01:09:54,971 --> 01:09:57,130 >> PUBLIKUM: So frei ist nur so dass etwas anderes 1490 01:09:57,130 --> 01:09:59,690 um dort nach gespeichert werden Dieses Programm hat es genutzt? 1491 01:09:59,690 --> 01:10:01,946 >> Sprecher 1: Es ist einfach zu sagen, OK, ich bin damit fertig. 1492 01:10:01,946 --> 01:10:03,320 Sie brauchen nicht, es zu halten rund. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 Andernfalls wird Ihr Computer wird nur mag versuchen und halten Sie ihn dort. 1495 01:10:08,190 --> 01:10:10,910 Und dann haben Sie nicht-- es läuft in den Speicher Probleme später. 1496 01:10:10,910 --> 01:10:13,660 Sie es, weil befreien wollen immer es sagt dem Computer, OK, ich bin 1497 01:10:13,660 --> 01:10:15,190 mit diesem Ort der Erinnerung gemacht. 1498 01:10:15,190 --> 01:10:17,190 Sie können es wieder zu haben für mich zu einem späteren Zeitpunkt zu verwenden. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 Cool? 1501 01:10:20,500 --> 01:10:21,320 Ja. 1502 01:10:21,320 --> 01:10:26,950 >> PUBLIKUM: So nutzten wir die% d gerade weil ein doppelt so kommt zurück, 1503 01:10:26,950 --> 01:10:28,330 oder warum ist-- [unverständlich]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> PUBLIKUM: Können Sie% i benutzen? 1506 01:10:31,620 --> 01:10:32,760 >> Sprecher 1: Sie können% i verwenden. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 Alle Last-Minute-Fragen? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 Nur zu. 1511 01:10:38,985 --> 01:10:40,610 PUBLIKUM: Ich habe nur eine kurze Frage. 1512 01:10:40,610 --> 01:10:50,200 Also die ptr Variable that's-- wie, mit dem int * ptr = malloc, 1513 01:10:50,200 --> 01:10:54,142 das ist einfach nur sagen, es ist zeigt auf einen Platz in memory-- 1514 01:10:54,142 --> 01:10:55,600 Sprecher 1: Wollen Sie [unverständlich]? 1515 01:10:55,600 --> 01:10:58,050 PUBLIKUM: --that ist das Größe von-- nein, es ist OK. 1516 01:10:58,050 --> 01:11:01,292 Aber es ist nur zu einem Platz im Zeige Speicher, der wie vier Bytes ist. 1517 01:11:01,292 --> 01:11:02,000 Sprecher 1: Richtig. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 So malloc die Größe des int sagt, OK, ich werde gehen ablaufen, 1520 01:11:07,070 --> 01:11:08,780 finden vier Byte Speicher für Sie. 1521 01:11:08,780 --> 01:11:10,700 Wenn sie feststellt, dass vier Bytes des Speichers, es 1522 01:11:10,700 --> 01:11:14,030 gibt Ihnen die Adresse Zurück von wo es beginnt, 1523 01:11:14,030 --> 01:11:16,160 und das ist, was gespeichert in Zeiger oder ptr. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 Gut. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 Ihr Jungs sehen weniger verwirrt als die meisten Leute, wenn ich über Zeiger zu sprechen, 1528 01:11:21,700 --> 01:11:23,670 so bin ich ein ziemlich gutes Gefühl jetzt. 1529 01:11:23,670 --> 01:11:24,520 >> In Ordnung. 1530 01:11:24,520 --> 01:11:27,960 Wie immer sollten Sie Jungs haben alle bekommen Ihre PSet2 Sorten inzwischen. 1531 01:11:27,960 --> 01:11:32,769 Ich weiß, es habe etwas wackelig gewesen Dinge, wo es heißt, Formel nicht gültig 1532 01:11:32,769 --> 01:11:33,310 oder so etwas. 1533 01:11:33,310 --> 01:11:36,166 Wenn Sie bekommen, dass alle Ihre Noten sind gültig auf meiner Seite. 1534 01:11:36,166 --> 01:11:38,040 So kann ich euch senden Screenshots Ihrer Noten. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 Lass es mich wissen, wie gut, wenn Sie fehlen keine Noten oder etwas 1537 01:11:41,760 --> 01:11:43,060 scheint nicht sinnvoll. 1538 01:11:43,060 --> 01:11:43,720 Komm zu mir. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> Ich habe Super stolz auf dich Jungs schon, so halten sie auf. 1541 01:11:48,830 --> 01:11:50,640 Und haben einen guten Rest Ihrer Woche. 1542 01:11:50,640 --> 01:11:53,440 Ich bin sicher, ich werde einige sehen von Ihnen bei der Bürozeiten. 1543 01:11:53,440 --> 01:11:55,414