1 00:00:00,000 --> 00:00:02,670 >> [Μουσικό θέμα] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> ΟΜΙΛΗΤΗΣ 1: Γεια, σε όλους. 4 00:00:13,365 --> 00:00:14,365 Καλώς ήρθατε και πάλι στο τμήμα. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 Υπέροχο ημέρα out-- οποία είναι ο λόγος, είμαι Σίγουρα, υπάρχουν μόνο τέσσερις από εσάς εδώ 7 00:00:18,700 --> 00:00:21,180 και όχι το συνηθισμένο πακέτο μας. 8 00:00:21,180 --> 00:00:22,670 Έχω ήταν άρρωστος αυτό το Σαββατοκύριακο. 9 00:00:22,670 --> 00:00:24,294 Έτσι, δεν έχω εκρήξεως για σας παιδιά. 10 00:00:24,294 --> 00:00:26,400 Και εγώ μπορεί να αρχίσει βήχα τρομερά καθ 'όλο αυτό. 11 00:00:26,400 --> 00:00:27,790 Έτσι απλά να φέρει μαζί μου. 12 00:00:27,790 --> 00:00:30,624 Πάω να προσπαθήσουμε πραγματικά και να πάρει μέσα από αυτό το πρώτο, 13 00:00:30,624 --> 00:00:32,290 όμως, πριν να έχω μια επίθεση βήχα. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 Αλλά ακριβώς είναι εύκολο για μένα ένα λίγο bit-- αυτό είναι το μόνο που ζητώ. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> Έτσι ατζέντα μας για today-- μόνο ένα reminder-- κουίζ σας είναι την επόμενη εβδομάδα. 18 00:00:44,289 --> 00:00:46,830 Σας είπα την περασμένη εβδομάδα, ώστε να δεν θα σας πιάσει από τη φρουρά. 19 00:00:46,830 --> 00:00:47,954 Έτσι είμαι να σας υπενθυμίσω και πάλι. 20 00:00:47,954 --> 00:00:49,180 Κουίζ σας την επόμενη εβδομάδα. 21 00:00:49,180 --> 00:00:52,730 Για το σκοπό αυτό, την επόμενη εβδομάδα τμήμα θα είναι πολύ πιο 22 00:00:52,730 --> 00:00:55,180 of-- Θα προσπαθήσω και να εργαστούν σε κάποια αναθεώρηση. 23 00:00:55,180 --> 00:00:58,130 Έτσι, αν εσείς θα μπορούσε να με βοηθήσει με την αποστολή μου 24 00:00:58,130 --> 00:01:00,990 πράγματα που είστε άνετοι με, που είστε ανησυχούν για, 25 00:01:00,990 --> 00:01:03,530 θέματα που θα θέλατε για Θέλω να καλύψει, αυτό θα ήταν μεγάλη. 26 00:01:03,530 --> 00:01:05,740 Έτσι, μπορώ να προσπαθήσω και να εργαστούν στο τμήμα μας την επόμενη εβδομάδα 27 00:01:05,740 --> 00:01:11,540 ή να σας στείλουμε επιπλέον υλικό ή prep ότι δεν μπορείτε να πάρετε αλλού. 28 00:01:11,540 --> 00:01:12,150 >> Ναι! 29 00:01:12,150 --> 00:01:13,520 Περισσότεροι άνθρωποι έρχονται! 30 00:01:13,520 --> 00:01:17,320 Σκέφτηκα, έκανα ότι άσχημα τελευταία εβδομάδα, ότι κανείς δεν θέλει να έρθει πίσω; 31 00:01:17,320 --> 00:01:18,065 Είμαι φοβισμένος. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 Έτσι, τα άλλα τρία πράγματα ότι θα πάμε για να πάει πέρα ​​από 34 00:01:21,100 --> 00:01:24,850 είναι ανακατεύθυνση, file I / O, και στη συνέχεια, δείκτες και δυναμική μνήμη. 35 00:01:24,850 --> 00:01:29,160 Είμαι βέβαιος ότι είστε όλοι σούπερ ενθουσιασμένος για pointers-- αγαπημένο θέμα όλων μας, 36 00:01:29,160 --> 00:01:31,310 τόσο απλό να καταλάβει. 37 00:01:31,310 --> 00:01:33,130 Είμαι βέβαιος ότι εσείς όλοι ότι έχεις, σωστά; 38 00:01:33,130 --> 00:01:39,510 >> Έτσι, πρώτα πράγματα πρώτα, redirection-- Αυτό είναι βασικά ακριβώς ένας τρόπος 39 00:01:39,510 --> 00:01:42,920 να ελέγχουν πώς μπορείτε εισόδου τα πράγματα στο πρόγραμμά σας, 40 00:01:42,920 --> 00:01:44,606 πώς εξόδου πράγματα από το πρόγραμμά σας. 41 00:01:44,606 --> 00:01:46,980 Οι κύριοι τρόποι που μπορείτε παιδιά έχουν αλληλεπίδραση με το 42 00:01:46,980 --> 00:01:51,650 Είναι ακριβώς μέσα από τυποποιημένα με την εκτύπωση οθόνης σας εδώ. 43 00:01:51,650 --> 00:01:55,940 Αλλά υπάρχουν τρόποι να pipe-- όπως βλέπουμε εδώ 44 00:01:55,940 --> 00:01:58,980 είναι ένα από τα words-- είδους μας του σωλήνα που πληροφορίες 45 00:01:58,980 --> 00:02:02,850 ή ότι τα δεδομένα σε ένα αρχείο από ένα αρχείο. 46 00:02:02,850 --> 00:02:05,820 Είναι ακριβώς τους διαφορετικούς τρόπους να πάρει τα πράγματα στο πρόγραμμά σας 47 00:02:05,820 --> 00:02:10,681 και έξω από το πρόγραμμά σας, αντί της απλά να τους την εκτύπωση σε αυτήν την οθόνη 48 00:02:10,681 --> 00:02:12,430 ή εισάγοντας τα πράγματα από τη γραμμή εντολών. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> Έτσι, η πρώτη είναι ένα μικρό μεγαλύτερη από καρέ. 51 00:02:18,030 --> 00:02:22,085 Έτσι output-- τυπώνει μόνο την έξοδο σε ένα αρχείο αντί για την οθόνη σας. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 Έτσι, αν είχατε κάτι που εκτυπώνονται "Γεια σου, κόσμε!" στην οθόνη, 54 00:02:29,500 --> 00:02:32,400 αν το βάλετε αντί να output.text, ότι 55 00:02:32,400 --> 00:02:35,220 δημιουργεί αυτό το αρχείο ονομάζεται output.text. 56 00:02:35,220 --> 00:02:38,550 Και όταν το ανοίξετε, αυτό θα λένε "Γεια σου, κόσμε!" εκεί. 57 00:02:38,550 --> 00:02:41,410 Αυτό μπορεί να είναι εξαιρετικά χρήσιμη εάν έχετε έναν τόνο των λαθών 58 00:02:41,410 --> 00:02:43,430 στην πραγματικότητα, όπως βλέπουμε σε αυτό. 59 00:02:43,430 --> 00:02:46,810 Αν κάνουμε δύο καρέ, αυτό θα εκτυπώσετε τα μηνύματα λάθους. 60 00:02:46,810 --> 00:02:52,090 >> Έτσι, αν έχετε ένα πρόβλημα με το μεταγλώττισης, έχει πολλά λάθη 61 00:02:52,090 --> 00:02:56,770 και είστε βυθιστούμε στην προσπάθεια για να μετακινηθείτε στην γραμμή εντολών σας 62 00:02:56,770 --> 00:02:59,110 μέσα από όλα αυτά, μπορείτε να απλά να τα εκτυπώσετε σε ένα αρχείο, 63 00:02:59,110 --> 00:03:02,130 να ανοίξει το αρχείο, έτσι ώστε να να μετακινηθείτε μέσα από τους ευκολότερη. 64 00:03:02,130 --> 00:03:05,160 Εγώ πραγματικά χρησιμοποιήθηκε ότι μια πολύ όταν ήμουν debugging 65 00:03:05,160 --> 00:03:07,970 181 psets μου για μηχανική μάθηση. 66 00:03:07,970 --> 00:03:10,000 Έτσι, μπορεί να είναι εξαιρετικά χρήσιμο αργότερα. 67 00:03:10,000 --> 00:03:18,370 Είναι επίσης χρήσιμο αν έχετε ένα πρόγραμμα ότι ίσως η δημιουργία μιας βιβλιοθήκης 68 00:03:18,370 --> 00:03:20,430 ή δημιουργώντας κάποια σετ του χορδές, και σας 69 00:03:20,430 --> 00:03:22,846 πρέπει να είναι σε θέση να δουν ότι αυτό είναι να παράγει σωστά. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 Αυτός είναι ο τρόπος για να το κάνουμε αυτό. 72 00:03:25,160 --> 00:03:28,280 >> Έτσι, αν τις εκτυπώσετε σε ένα αρχείο, μπορείτε μπορεί να εξετάσει τους πιο εύκολα, σωστά; 73 00:03:28,280 --> 00:03:30,930 Versus προσπαθώντας να μετακινηθείτε μέσω της γραμμής εντολών σας. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 Και τότε ένα πράγμα που πρέπει να σημειωθεί είναι ότι μόνο με το μεγαλύτερο 76 00:03:35,820 --> 00:03:40,090 από το καρέ, εάν γράφετε σε ένα αρχείο που ήδη exists-- 77 00:03:40,090 --> 00:03:44,990 Έτσι, όπως και αν τρέξαμε αυτό το πρώτο χρόνο, το βάζουμε να output.text, 78 00:03:44,990 --> 00:03:49,970 και στη συνέχεια είχαμε ένα δεύτερο πρόγραμμα ότι το έντυπο αυτό ως πρόγραμμα δύο 79 00:03:49,970 --> 00:03:54,250 και έκανε μια μεγαλύτερη από ό, τι σε output.text, που θα αντικαταστήσει that-- έτσι 80 00:03:54,250 --> 00:03:56,715 αντικαταστήσετε ό, τι ήταν ποτέ σε αυτό το αρχείο για να αρχίσει με. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> Έτσι, αν θέλετε να προσαρτήσετε σε ένα αρχείο, όπως βλέπουμε εδώ, 83 00:04:00,750 --> 00:04:04,779 μπορείτε απλά να κάνουμε δύο μεγαλύτερες από τα σημάδια. 84 00:04:04,779 --> 00:04:05,820 Και αυτό θα προσθέσει σε αυτό. 85 00:04:05,820 --> 00:04:06,750 Δεν θα το αντικαταστήσετε. 86 00:04:06,750 --> 00:04:09,770 Έτσι, αν πρέπει να εκτελέσετε πολλαπλές προγράμματα και το είδος του να κρατήσει 87 00:04:09,770 --> 00:04:13,170 κομμάτι του τι είναι όλα αυτά επιστρέφουν σε σας σε ένα αρχείο, 88 00:04:13,170 --> 00:04:14,190 ότι είναι ένας τρόπος για να το κάνουμε. 89 00:04:14,190 --> 00:04:17,231 Αν δεν με νοιάζει τι είναι το αρχείο σας και αυτό είναι που επιτρέπεται να αντικατασταθούν, 90 00:04:17,231 --> 00:04:19,204 μπορείτε να χρησιμοποιήσετε μόνο ένα ενιαίο μεγαλύτερο από ό, τι. 91 00:04:19,204 --> 00:04:20,600 Μήπως αυτό έχει νόημα για όλους; 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> ΚΟΙΝΟ: Όπως dot κάθετος γεια μεγαλύτερη από το κείμενο dot εξόδου, όπως και δύο φορές, 94 00:04:31,140 --> 00:04:34,030 αυτό ακριβώς θα δείξει μόνο στην παραγωγή dot κείμενο μια δεύτερη time-- 95 00:04:34,030 --> 00:04:34,810 >> ΟΜΙΛΗΤΗΣ 1: Δεξιά. 96 00:04:34,810 --> 00:04:40,450 Έτσι θα ήταν ουσιαστικά μόνο εντελώς αντικαταστήσετε αυτό που ήταν εκεί για να αρχίσει με. 97 00:04:40,450 --> 00:04:44,260 Εάν αυτό το αρχείο εδώ, η output.text ήδη 98 00:04:44,260 --> 00:04:48,230 υπάρχει, βασικά ό, τι ονομάζουμε ότι και πάλι με ένα ενιαίο μεγαλύτερο 99 00:04:48,230 --> 00:04:51,920 από ό, τι μπορείτε να σκεφτείτε ακριβώς από αυτό ως σαν να αντικαταστήσει το αρχείο. 100 00:04:51,920 --> 00:04:54,824 Όπως όταν σώζετε μια λέξη έγγραφο και κάνετε αποθήκευση ως, 101 00:04:54,824 --> 00:04:57,365 και θα κρατήσει το ίδιο όνομα, και που αντικαθιστά it-- εντελώς 102 00:04:57,365 --> 00:04:58,680 Αυτό είναι το ίδιο είδος του πράγματος. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 Όποιος έχει απορίες σχετικά με απλά την έξοδο σε ένα αρχείο; 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 Awesome. 107 00:05:05,550 --> 00:05:11,440 >> Έτσι, προφανώς, αν αντιστραφεί η την κατεύθυνση του βέλους, μπορεί να κάνει είσοδο. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 Έτσι, όταν τα παιδιά είχαν όπως Καίσαρα ή Visioneer 110 00:05:19,960 --> 00:05:23,195 και θα έπρεπε να κάτι εισόδου, είχατε ένα όρισμα της γραμμής εντολών 111 00:05:23,195 --> 00:05:24,960 ότι στην πραγματικότητα εισάγετε. 112 00:05:24,960 --> 00:05:27,410 Αυτός είναι ένας άλλος τρόπος για να το κάνουμε αυτό. 113 00:05:27,410 --> 00:05:30,520 Έτσι, αντί να περιμένουν για μια γραμμή εντολών, 114 00:05:30,520 --> 00:05:33,800 όπως όταν σας ζητηθεί για σας μήνυμα σε Καίσαρα ή Visioneer, 115 00:05:33,800 --> 00:05:36,490 αν είχατε ένα αρχείο κειμένου ότι είχε το μήνυμά σας, 116 00:05:36,490 --> 00:05:38,280 θα μπορούσατε απλά να πληκτρολογήσετε σε αυτό. 117 00:05:38,280 --> 00:05:44,930 >> Επομένως, εάν αυτό ήταν σαν κουκίδα κάθετο Καίσαρα 3 λιγότερο από το βέλος εισαγωγής κειμένου, το οποίο 118 00:05:44,930 --> 00:05:47,240 είναι το μήνυμά σας, ότι θα τρέχει μια χαρά. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 Όταν το πρόγραμμά σας Καίσαρα πραγματικότητα ζήτησε για είσοδο από το χρήστη, 121 00:05:54,020 --> 00:05:57,360 θα το έχετε ήδη, επειδή έχετε πληκτρολογήσει σε αυτό το αρχείο. 122 00:05:57,360 --> 00:05:58,830 Αυτός είναι απλά ένας άλλος τρόπος. 123 00:05:58,830 --> 00:06:02,445 Ακριβώς μια αντίστροφη της output-- απλά η είσοδος για τα δεδομένα σας. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> Και στη συνέχεια το τελευταίο είναι σωλήνα. 126 00:06:06,680 --> 00:06:07,780 Έτσι, αρκετά δροσερό αυτού του ατόμου. 127 00:06:07,780 --> 00:06:09,890 Επειδή σας δίνει τη δυνατότητα να λαμβάνει την έξοδο ενός 128 00:06:09,890 --> 00:06:13,695 πρόγραμμα και να το θέσω ως είσοδος σε ένα άλλο πρόγραμμα. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 Δεν ξέρω αν κάποιος από εσάς έπαιξε με το αποκρυπτογραφήσει 131 00:06:18,630 --> 00:06:20,590 ότι CS50 θα μπορούσε να έχει θα δοθεί, αλλά θα 132 00:06:20,590 --> 00:06:27,380 σας επιτρέπουν να πάρει κάποιο δείγμα αρχείο, πληκτρολογήστε στο κρυπτογράφησης, 133 00:06:27,380 --> 00:06:30,350 και στη συνέχεια από εκεί Τύπος ότι στην αποκρυπτογράφηση σας 134 00:06:30,350 --> 00:06:32,470 για να βεβαιωθείτε ότι αποδείχθηκε το ίδιο. 135 00:06:32,470 --> 00:06:34,050 Έτσι είναι το είδος του σαν τρεις-τρόπο βρόχου. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 Πηγαίνετε για αυτό. 138 00:06:39,423 --> 00:06:41,785 >> ΚΟΙΝΟ: Εάν ένα πρόγραμμα έχει πολλαπλές εισόδους, 139 00:06:41,785 --> 00:06:47,646 Είναι ένας τρόπος για να πει ποια είναι η συνεισφορά εκεί να χρησιμοποιήσετε το αρχείο κειμένου ή την έξοδο για; 140 00:06:47,646 --> 00:06:49,325 >> ΟΜΙΛΗΤΗΣ 1: Έχει πολλαπλές εισόδους. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 Ό, τι αρχείο input-- σας όταν είναι ζητώντας εισόδου που πρώτη φορά, είναι 143 00:07:00,430 --> 00:07:03,240 πρόκειται να αναλάβει, νομίζω, είναι πρόκειται να αγωγό σε ολόκληρο το αρχείο. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 Έτσι, εάν έχετε πολλαπλές εισόδους, είστε πρόκειται να σωληνώσεις σε πολλαπλά αρχεία. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 Έτσι, αν είστε ζητώντας μηνύματα τρεις φορές στον κώδικά σας, 148 00:07:12,390 --> 00:07:15,230 εσείς πρόκειται να πρέπει να θέτει σε τρία διαφορετικά αρχεία. 149 00:07:15,230 --> 00:07:15,980 Και αυτό γίνεται τρελό. 150 00:07:15,980 --> 00:07:18,188 Και εσείς δεν θα πρέπει να ανησυχείτε γι 'αυτό τώρα. 151 00:07:18,188 --> 00:07:19,150 Αλλά αυτή είναι η ιδέα. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> Οπότε ναι, σωλήνας είναι μόνο έξοδος ενός πρόγραμμα χρησιμοποιεί είσοδο μέσα στο άλλο. 154 00:07:26,822 --> 00:07:27,665 Όλοι καλά εκεί; 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 ΟΚ. 159 00:07:30,932 --> 00:07:32,890 Πιθανότατα δεν θα έχει να κάνει πάρα πολύ με αυτό. 160 00:07:32,890 --> 00:07:35,670 Αλλά θα πρέπει να καταλάβουν τρόποι που μπορείτε να χρησιμοποιήσετε αυτό. 161 00:07:35,670 --> 00:07:38,910 Και υπάρχουν μερικές περιπτώσεις που ίσως να θέλετε να το χρησιμοποιήσετε. 162 00:07:38,910 --> 00:07:44,590 >> Έτσι file I / O-- ξέρω τι είστε saying-- έχουμε συνηθίσει να διαβάζει από 163 00:07:44,590 --> 00:07:50,500 και γράφοντας στην οθόνη μας εκεί, το οποίο είναι στάνταρ σε πρότυπο και έξω. 164 00:07:50,500 --> 00:07:54,370 Και αυτό είναι ό, τι σας παιδιά έχουν κάνει από την αρχή της κατηγορίας εδώ. 165 00:07:54,370 --> 00:07:58,220 Αλλά μπορείτε επίσης να διαβάσει και να γράψει αρχεία, το οποίο είναι το σύνολο αρχείο I / O-- έτσι αρχείο εισόδου, 166 00:07:58,220 --> 00:07:59,850 εξόδου είναι το μόνο που αντιπροσωπεύει. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 Έτσι, αυτό ουσιαστικά σημαίνει ότι μπορείτε να αποθηκεύσετε τα δεδομένα σας τώρα. 169 00:08:04,360 --> 00:08:08,460 >> Όταν απλά να εκτυπώσετε προς τα οθόνη, αυτό είναι βασικά φύγει, σωστά; 170 00:08:08,460 --> 00:08:12,507 Μόλις κάνετε "Γεια σας κόσμο "και τρέχει" Hello world " 171 00:08:12,507 --> 00:08:14,090 τυπώνει "Hello world" στην οθόνη. 172 00:08:14,090 --> 00:08:16,370 Αλλά δεν μπορείτε πραγματικά να κάνετε τίποτα με το από εκεί. 173 00:08:16,370 --> 00:08:18,950 Αν έχετε αποθηκεύσει σε ένα κείμενο αρχείο, στη συνέχεια, ξαφνικά 174 00:08:18,950 --> 00:08:22,789 έχετε αυτά τα στοιχεία που σας επιτρέπεται να χειραγωγήσουν ή να το βάλετε σε ένα αρχείο, 175 00:08:22,789 --> 00:08:24,080 ή να το βάλετε σε ένα πρόγραμμα αργότερα. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 Ένας από τους λόγους γιατί το κάνουμε αυτό είναι ακριβώς 178 00:08:29,290 --> 00:08:31,560 ως έναν τρόπο για την αποθήκευση δεδομένων για μεταγενέστερη χρήση. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> Έχω μια-δυο βήματα εδώ απλά περπατώντας μέσα πρότυπο 181 00:08:37,279 --> 00:08:39,450 I / O. Στο πρώτο βήμα, θα Πρέπει να δημιουργήσετε μια αναφορά 182 00:08:39,450 --> 00:08:43,480 στο αρχείο με όλα τα καπάκια Αρχείο αστέρων. 183 00:08:43,480 --> 00:08:45,740 Έτσι ώστε να δημιουργεί ένα δείκτη σε ένα αρχείο. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 Έτσι, τότε θα θέλετε να το ανοίξετε. 186 00:08:49,650 --> 00:08:52,940 Και λέτε, κυριολεκτικά, μόνο αρχείο ισούται με fopen. 187 00:08:52,940 --> 00:08:57,400 Και αυτό πρόκειται να επιστρέψει μια δείκτη στο αρχείο που μόλις άνοιξε. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 Είδα ένα ζευγάρι από εσάς παιδιά σε ώρες γραφείου. 190 00:09:01,460 --> 00:09:07,400 >> Αλλά ένα από τα πράγματα είναι remember-- δείκτες 191 00:09:07,400 --> 00:09:10,409 μπορεί να είναι κάποια διεύθυνση ή μηδενική, σωστά; 192 00:09:10,409 --> 00:09:12,700 Αν έχουμε ποτέ μια περίπτωση όπου κάτι που μπορεί να επιστρέψει null, 193 00:09:12,700 --> 00:09:14,990 τι πρέπει να κάνουμε πριν εμείς ποτέ να το χρησιμοποιήσω; 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 Θα πρέπει να ελέγξετε αν είναι μηδενική ή όχι, σωστά; 196 00:09:19,000 --> 00:09:23,600 Επειδή κάποιοι από εσάς μπορεί να είχαν Το θέμα στο οποίο ανεξαρτήτως αντικειμένου 197 00:09:23,600 --> 00:09:26,110 είχε επιστρέψει στο ξεμπλοκάρισμα ήταν μηδενική. 198 00:09:26,110 --> 00:09:28,170 Προσπαθήσατε να εκτελέσετε κάποια λειτουργία σε αυτό. 199 00:09:28,170 --> 00:09:29,770 Και ο υπολογιστής site σας επικριθεί. 200 00:09:29,770 --> 00:09:30,725 Σωστά; 201 00:09:30,725 --> 00:09:33,640 Σίγουρα ένα ζευγάρι από εσάς μπορεί να είχε αυτό το θέμα. 202 00:09:33,640 --> 00:09:38,890 >> Έτσι, με fopen, fopen είτε θα επιστρέφει ένα δείκτη στο αρχείο, 203 00:09:38,890 --> 00:09:41,200 ή αν κάτι πάει στραβά, πρόκειται να επιστρέψει null. 204 00:09:41,200 --> 00:09:45,980 Έτσι, θα πρέπει πάντα να ελέγχετε ότι δεν έχει επιστρέψει null 205 00:09:45,980 --> 00:09:47,880 πριν επιχειρήσετε να κάνετε τίποτα άλλο. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 Αυτό είναι σαν ένα τυπικό παράδειγμα ότι θα πάμε να χρειάζονται εδώ. 208 00:09:51,974 --> 00:09:54,390 Αν υπάρχει πάντα μια πιθανότητα ότι κάτι που θα μπορούσε να επιστρέψει null, 209 00:09:54,390 --> 00:09:56,590 ελέγξτε για να βεβαιωθείτε ότι δεν πριν να συνεχίσετε. 210 00:09:56,590 --> 00:09:58,911 Διαφορετικά, θα πάμε να πάρετε υπέροχη σφάλματα ιστοσελίδα. 211 00:09:58,911 --> 00:10:00,410 Και κανείς δεν θέλει να ασχοληθεί με αυτά. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> Έτσι, όπως βλέπουμε εδώ, το πρώτο επιχείρημα είναι ακριβώς η διαδρομή προς το αρχείο. 214 00:10:06,410 --> 00:10:09,380 Αν αυτό το αρχείο δεν υπάρχει, πρόκειται να δημιουργήσει αυτό το αρχείο. 215 00:10:09,380 --> 00:10:10,713 Και είναι ακριβώς πρόκειται να είναι κενό. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 Και στη συνέχεια, το δεύτερο επιχείρημα είναι ο τρόπος που θέλετε. 218 00:10:13,080 --> 00:10:14,610 Μήπως θέλετε να διαβάσετε από αυτό το αρχείο; 219 00:10:14,610 --> 00:10:15,560 Θέλετε να γράψετε από αυτό; 220 00:10:15,560 --> 00:10:16,476 Θέλετε να προσαρτήσει; 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 Έτσι, στην πραγματικότητα αυτό που μόλις said-- αν το αρχείο δεν υπάρχει 223 00:10:20,670 --> 00:10:23,400 και προσπαθείτε να διαβάσει από αυτό, πρόκειται να ρίξει ένα σφάλμα. 224 00:10:23,400 --> 00:10:26,890 Αν το αρχείο name-- αρέσει, αν file.text δεν υπάρχει ακόμη 225 00:10:26,890 --> 00:10:29,250 και θέλετε να γράψετε σε αυτό, θα δημιουργήσει 226 00:10:29,250 --> 00:10:33,110 ένα κενό αρχείο με όνομα file.text για εσάς. 227 00:10:33,110 --> 00:10:36,612 Και αν θέλετε να προσαρτήσετε, θα πρέπει να κάνουν το ίδιο πράγμα. 228 00:10:36,612 --> 00:10:38,081 Μήπως αυτό έχει νόημα; 229 00:10:38,081 --> 00:10:40,580 Αν προσπαθείτε να διαβάσει από ένα αρχείο που δεν υπάρχει ακόμα, 230 00:10:40,580 --> 00:10:41,590 αυτό θα ρίξει ένα σφάλμα. 231 00:10:41,590 --> 00:10:44,340 Διαφορετικά, θα δημιουργήσει το αρχείο για να κάνετε ό, τι θέλετε σε αυτό. 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 Τώρα μπορούμε να διαβάσουμε από το αρχείο. 236 00:10:48,880 --> 00:10:52,570 Και αυτό είναι ακριβώς το είδος της μετάβασης μέσω των διαφόρων λειτουργιών 237 00:10:52,570 --> 00:10:58,980 ότι έχουμε για το αρχείο I / O. Αυτή η βούληση είναι αναγκαίο το chipset αυτής της εβδομάδας, 238 00:10:58,980 --> 00:11:00,505 αν θυμάμαι σωστά. 239 00:11:00,505 --> 00:11:02,880 Ναι, αυτό θα είναι απολύτως απαραίτητο το chipset αυτής της εβδομάδας. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 Έτσι fgetc επιστρέφει τον επόμενο χαρακτήρα. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets απλά επιστρέφει μια γραμμή κειμένου. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 Θα επιστρέψει τίποτα μέχρι μια νέα γραμμή, και θα σπάσει. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 Έτσι fread διαβάζει ένα ορισμένο τον αριθμό των bytes και τα τοποθετεί 248 00:11:18,700 --> 00:11:20,700 σε μια σειρά, η οποία είναι κάτι που θα μπορούσε να 249 00:11:20,700 --> 00:11:25,485 θέλουν να κάνουν με την εκ νέου size-- μπορεί να είναι χρήσιμο. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> Πόσοι άνθρωποι έχουν διαβάσει το spec το chipset, από τον τρόπο; 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 ΟΚ. 254 00:11:32,261 --> 00:11:32,760 [Δεν ακούγεται] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> ΟΜΙΛΗΤΗΣ 1: Εντάξει. 257 00:11:36,580 --> 00:11:37,530 Εντάξει. 258 00:11:37,530 --> 00:11:41,940 Σίγουρα διαβάσετε that-- είναι ένα διασκεδαστικό το chipset. 259 00:11:41,940 --> 00:11:51,320 Μπορείτε να πάρετε για να ανακτήσετε ένα διαγραμμένο μνήμη card-- πραγματικά συναρπαστικό όταν λειτουργεί. 260 00:11:51,320 --> 00:11:54,100 Αλλά σίγουρα, αρχίσει να διαβάζει αυτό. 261 00:11:54,100 --> 00:11:56,280 Ελάτε να μιλήσουμε για μένα, αν έχετε ερωτήσεις σχετικά με αυτό. 262 00:11:56,280 --> 00:11:59,290 >> Εντάξει, έτσι όπως έλεγα, fread διαβάζει ένα ορισμένο αριθμό bytes. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 Αυτό είναι κάποιο αυθαίρετο αριθμό ότι θα πάμε για να ρυθμίσετε. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 Και τότε fseek μόνο κινήσεις σε μια ορισμένη θέση. 267 00:12:08,260 --> 00:12:11,150 Έτσι, ίσως δεν με νοιάζει για τα επόμενα 10 bytes. 268 00:12:11,150 --> 00:12:12,880 Απλά θέλετε να προχωρήσετε. 269 00:12:12,880 --> 00:12:14,030 Δεν νοιάζονται για εκείνους. 270 00:12:14,030 --> 00:12:16,280 Θέλετε να διαβάσετε ξεκινώντας στο byte 11. 271 00:12:16,280 --> 00:12:18,252 fseek σας επιτρέπει να το κάνουμε αυτό. 272 00:12:18,252 --> 00:12:20,710 Γι 'αυτό σας επιτρέπει να είναι επιλεκτικό σχετικά με το τι διαβάζετε. 273 00:12:20,710 --> 00:12:25,880 Επειδή fgetc, fgets, και fread ανάγνωσης από μια συγκεκριμένη θέση στο αρχείο. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> Ένας τρόπος για να σκεφτούμε γι 'αυτό είναι, αν αυτό είναι το αρχείο μας, όταν ανοίγετε πρώτη φορά, 276 00:12:35,090 --> 00:12:41,140 έχετε αυτή τη θέση στο αρχείο που ξεκινά από την αρχή. 277 00:12:41,140 --> 00:12:45,040 Κάθε φορά που σας καλούν fgetc, fgetf, ή fread, 278 00:12:45,040 --> 00:12:48,875 πρόκειται να ξεκινήσει από ο δείκτης θέσης. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 Ας πούμε απλά θέλετε να διαβάσετε Αυτό το κομμάτι της μνήμης εδώ. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 Δεν μπορείτε απλά να καλέσετε. 283 00:12:57,960 --> 00:13:02,430 Θα πρέπει να αναζητήσει εδώ και στη συνέχεια διαβάζονται από εκεί 284 00:13:02,430 --> 00:13:06,540 ή να διαβάσετε, παίρνει, ή getc, ανάλογα με το τι θέλετε. 285 00:13:06,540 --> 00:13:09,310 Έτσι, αναζητούν απλά σας επιτρέπει να παραλείψτε τα τμήματα της μνήμης. 286 00:13:09,310 --> 00:13:11,590 Και αυτό είναι το μόνο τον τρόπο μπορείτε να παρακάμψετε τα πράγματα 287 00:13:11,590 --> 00:13:14,012 χωρίς την ανάγνωση τους σε ρυθμιστικό σας. 288 00:13:14,012 --> 00:13:15,470 Μήπως αυτό έχει νόημα για όλους; 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> Προφανώς, υπάρχει μια πολλές παράλληλες here-- 291 00:13:24,780 --> 00:13:27,780 ανακατεύθυνση εξόδου ή εισόδου μας, έχετε διαβάσει και να γράψει. 292 00:13:27,780 --> 00:13:31,800 Έτσι fputc γράφει μόνο ένα χαρακτήρα στο αρχείο. 293 00:13:31,800 --> 00:13:33,655 fputs γράφει μια γραμμή. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf εκτυπώνει μια μορφοποιημένη έξοδο. 296 00:13:37,420 --> 00:13:41,190 Έτσι, εάν έχετε καρτέλες, ή χώρο, ή οτιδήποτε. 297 00:13:41,190 --> 00:13:44,180 Και τότε fwrite γράφει κάποια πίνακα από bytes σε ένα αρχείο. 298 00:13:44,180 --> 00:13:48,860 Έτσι, αυτό είναι με τον ίδιο τρόπο fwrite και fread είναι ανάλογες 299 00:13:48,860 --> 00:13:57,550 opposites-- fgets, fputs, και Στη συνέχεια fputc και fgetc-- παρτίδες 300 00:13:57,550 --> 00:14:00,710 τρελά, γρήγορη πράγματα. 301 00:14:00,710 --> 00:14:05,300 >> Ακριβώς το είδος των διατηρήσει αυτό handy-- θα έχουν διαφορετικούς χρόνους 302 00:14:05,300 --> 00:14:08,680 όπου ίσως απλά θέλετε ένα χαρακτήρα τη φορά. 303 00:14:08,680 --> 00:14:09,890 Ίσως θέλετε μια ολόκληρη γραμμή. 304 00:14:09,890 --> 00:14:14,320 Με λεξικό pset-- σας η οποία είναι σε δύο psets, 305 00:14:14,320 --> 00:14:19,690 Πιστεύω, σας δίνουμε μια ολόκληρη λεξικό σε μορφή κειμένου 306 00:14:19,690 --> 00:14:22,252 που έχει κάθε λέξη διαχωρίζονται από μια γραμμή. 307 00:14:22,252 --> 00:14:24,210 Έτσι, αν θέλετε να διαβάσετε με μια λέξη σε μια στιγμή, 308 00:14:24,210 --> 00:14:31,769 τι θα μπορούσε να χρησιμοποιήσει, αν είστε ανάγνωση και που όλα αυτά χωρίζονται σε νέες γραμμές, 309 00:14:31,769 --> 00:14:33,310 και απλά θέλετε μία λέξη σε μια στιγμή; 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> ΚΟΙΝΟ: fgets 312 00:14:36,040 --> 00:14:36,748 >> ΟΜΙΛΗΤΗΣ 1: Δεξιά. 313 00:14:36,748 --> 00:14:39,960 Fgets-- γιατί αυτό επιστρέφει ό, τι είναι σε μια γραμμή. 314 00:14:39,960 --> 00:14:42,750 Και αν κάθε λέξη είναι της τη δική του γραμμή, μπορούμε να χρησιμοποιήσουμε fgets. 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 Μήπως αυτό έχει νόημα, ο καθένας; 318 00:14:47,290 --> 00:14:48,020 Cool; 319 00:14:48,020 --> 00:14:50,020 Ναι, θα πάμε για να φτάσετε στο το διασκεδαστικό μέρος με δείκτες 320 00:14:50,020 --> 00:14:51,728 πολύ σύντομα, όπου μπορείτε έχετε να κάνετε κάποια μαθηματικά. 321 00:14:51,728 --> 00:14:52,776 Και αυτό θα είναι μεγάλη. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> Τελευταία step-- κλείσει το αρχείο σας. 324 00:14:57,740 --> 00:15:01,090 Με τόσα πολλά πράγματα εδώ, ένα από τα παραδείγματα μας 325 00:15:01,090 --> 00:15:03,550 είναι αν μπορεί να επιστρέψει null, ελέγξτε για μηδενική. 326 00:15:03,550 --> 00:15:06,160 Εάν ανοίξετε κάτι, θέλετε να κλείσετε το καλύτερο. 327 00:15:06,160 --> 00:15:10,419 Εντάξει, έτσι δεν είστε γίνει μέχρι να είστε γίνει αν δεν έχω κλείσει. 328 00:15:10,419 --> 00:15:12,585 Κάτι σαν αυτό δεν είναι πάνω μέχρι το λίπος κυρία τραγουδά. 329 00:15:12,585 --> 00:15:14,130 Αυτό είναι σαν το κλείσιμο του αρχείου σας. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 Όπως λέει εδώ, απλά να επαναλάβω, πάντα 332 00:15:19,190 --> 00:15:21,750 ανοίξετε το αρχείο σας πριν είστε ανάγνωση ή την εγγραφή σε αυτό. 333 00:15:21,750 --> 00:15:24,450 Και πάντα να το κλείσετε, αν έχετε ανοίξει. 334 00:15:24,450 --> 00:15:25,460 Εντάξει; 335 00:15:25,460 --> 00:15:25,960 Cool. 336 00:15:25,960 --> 00:15:26,835 >> Έτσι, εδώ είναι ένα παράδειγμα. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 Έτσι tiny-- δεν ξέρω αν σας παιδιά μπορούν να δουν πολύ καλά. 339 00:15:34,330 --> 00:15:36,805 Εάν μόνο θα μπορούσαμε να αυξήσουμε η φωτεινότητα με κάποιο τρόπο. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 Επιτρέψτε μου να το κάνετε πραγματικά αυτό, αν μπορώ. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 Εντάξει, εσείς δεν μπορεί πραγματικά να δείτε ότι σε όλα, μπορεί να σας; 344 00:15:51,470 --> 00:15:52,905 Εντάξει, θα πάμε να το κάνουμε αυτό, τότε. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [Δεν ακούγεται] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> Υποθέτω ότι αυτό είναι πολύ καλύτερο να δούμε. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 Μπορεί κανείς να δει όπου μου ποντίκι πήγε είναι η ερώτηση; 351 00:17:19,455 --> 00:17:22,837 Αχ, εκεί is-- τι αγωνίζεται! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> ΟΚ. 354 00:17:49,520 --> 00:17:53,845 Βασικά, εσείς θα πρέπει να έχουν το είδος μια ιδέα του τι είναι αυτό που κάνει. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 Δεν είναι τέλεια. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 Αλλά εγώ θα προτιμούσα να εξηγήσει το δαπανούν περισσότερο χρόνο προσπαθώντας να το διαμορφώσετε σωστά. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 Βασικά, όπως βλέπετε εδώ, αρχίζουμε με το αρχείο ανοιχτό. 361 00:18:07,280 --> 00:18:09,620 Και έχουμε κάποια αρχείο βάσης δεδομένων που είμαστε 362 00:18:09,620 --> 00:18:12,300 άνοιγμα που λέει ότι είναι μαθητές μας. 363 00:18:12,300 --> 00:18:14,020 Και θα πάμε να γράψει σε αυτό. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 Έτσι, φυσικά, να επιστρέψει null. 366 00:18:17,720 --> 00:18:19,650 Έτσι πρέπει να ελέγξετε για μηδενική. 367 00:18:19,650 --> 00:18:22,930 Και στη συνέχεια, αν δεν είναι null, πάμε μέσα. 368 00:18:22,930 --> 00:18:25,660 Και όπως βλέπετε, είμαστε looping μέσα εδώ. 369 00:18:25,660 --> 00:18:26,960 Υπάρχουν φοιτητές. 370 00:18:26,960 --> 00:18:30,520 Οι μαθητές είναι hash ορίζεται ως τρεις. 371 00:18:30,520 --> 00:18:34,060 Και αυτό που κάνουμε είναι είμαστε εκτύπωση σε αρχείο, σωστά; 372 00:18:34,060 --> 00:18:36,975 Λοιπόν, τι μπορούμε εκτύπωση σε αρχείο μας; 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> ΚΟΙΝΟ: Οι βαθμολογίες που βρίσκονται στον πίνακα; 375 00:18:48,906 --> 00:18:49,680 >> ΟΜΙΛΗΤΗΣ 1: Ναι. 376 00:18:49,680 --> 00:18:50,980 Οι βαθμολογίες που βρίσκονται σε η array-- ακριβώς. 377 00:18:50,980 --> 00:18:53,050 Έτσι, ανοίγουμε αυτό αρχείο της βάσης δεδομένων, η οποία 378 00:18:53,050 --> 00:18:56,040 Υποθέτω ότι είναι κάποιο είδος των βαθμών της βάσης δεδομένων. 379 00:18:56,040 --> 00:19:01,100 Και εμείς απλά την εκτύπωση της βαθμολογίες του κάθε μαθητή σε αυτό το αρχείο. 380 00:19:01,100 --> 00:19:02,140 Cool; 381 00:19:02,140 --> 00:19:02,640 Καλή. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 Awesome. 384 00:19:04,310 --> 00:19:05,100 ΟΚ. 385 00:19:05,100 --> 00:19:06,950 Ας πάρει πίσω to-- 386 00:19:06,950 --> 00:19:08,646 >> ΚΟΙΝΟ: Έχω μια γρήγορη ερώτηση. 387 00:19:08,646 --> 00:19:11,570 Είναι η printf όχι η για βρόχο; 388 00:19:11,570 --> 00:19:12,870 Αυτό είναι ακριβώς το αν βρόχο; 389 00:19:12,870 --> 00:19:14,370 ΟΜΙΛΗΤΗΣ 1: Όχι, είναι στο βρόχο for. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 Δεν μπορώ να δω το ποντίκι μου πολύ καλά μέχρι εδώ. 392 00:19:18,810 --> 00:19:21,359 Έτσι είμαι αγωνίζονται να μορφή που σωστά. 393 00:19:21,359 --> 00:19:22,525 Ο βραχίονας αυτός πρέπει να φύγει. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 Θα πρέπει να είναι εδώ κάτω. 396 00:19:25,130 --> 00:19:26,605 Αυτό είναι ό, τι είναι σε σας για βρόχο. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 Εκεί. 399 00:20:11,180 --> 00:20:12,160 Τώρα είναι αρκετά. 400 00:20:12,160 --> 00:20:16,720 Έτσι, αυτό είναι το πώς θα πρέπει να be-- εκτός για το τελευταίο στήριγμα που απέρριψε. 401 00:20:16,720 --> 00:20:17,220 ΟΚ. 402 00:20:17,220 --> 00:20:19,491 Μήπως αυτό έχει νόημα για όλους; 403 00:20:19,491 --> 00:20:19,990 ΟΚ. 404 00:20:19,990 --> 00:20:23,750 Εμείς πάμε για να προχωρήσουμε στο επόμενο πράγμα then-- 405 00:20:23,750 --> 00:20:26,180 η οποία, στην πραγματικότητα, θα πάμε να πρέπει να δείτε τον κώδικα. 406 00:20:26,180 --> 00:20:28,370 Έτσι, είμαι απλώς πρόκειται να αντιγράψετε ότι πάνω από τώρα. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 ΟΚ. 409 00:20:32,000 --> 00:20:35,110 Έτσι, Πάω να σας δείξω παιδιά αυτός ο κώδικας. 410 00:20:35,110 --> 00:20:38,240 Και θέλω να δοκιμάσετε και το σχήμα από αυτό που θα έπρεπε να κάνει. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> Έτσι, δίνεται that-- πάρει ένα λεπτό ή έτσι. 413 00:20:52,480 --> 00:20:54,440 Δοκιμάστε και να καταλάβω τι συμβαίνει εδώ. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> Οποιεσδήποτε ιδέες; 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> Γνωρίζουμε ότι έχουμε τουλάχιστον δύο τα επιχειρήματα της γραμμής εντολών, σωστά; 418 00:22:12,470 --> 00:22:16,270 Υποθέτω ένα από τα οποία πρόκειται να είναι ότι [δεν ακούγεται] του προγράμματος μας είναι 419 00:22:16,270 --> 00:22:17,530 και μετά κάτι άλλο. 420 00:22:17,530 --> 00:22:19,980 Διότι, αν [δεν ακούγεται] είναι λιγότερο από δύο, θα φωνάζω σε αυτούς. 421 00:22:19,980 --> 00:22:21,140 Σωστά; 422 00:22:21,140 --> 00:22:25,300 Και από τη χρήση, μοιάζει πρόκειται να είναι κάποιο είδος του αρχείου. 423 00:22:25,300 --> 00:22:26,260 Όλοι συμφωνούμε σε αυτό; 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 Μέχρι τώρα, τι είναι ο βρόχος να κάνει; 426 00:22:31,570 --> 00:22:32,570 Τι είναι αυτό που πηγαίνει μέσα; 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> ΚΟΙΝΟ: Όλα τα αρχεία. 429 00:22:36,449 --> 00:22:37,240 ΟΜΙΛΗΤΗΣ 1: Ακριβώς. 430 00:22:37,240 --> 00:22:39,650 Είναι να περάσει από όλα τα αρχεία που έχουμε είσοδο εκεί. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 Έτσι, για κάθε αρχείο, είναι ανοίγοντας κάποια χορδή εκεί. 433 00:22:46,040 --> 00:22:47,560 Είναι το άνοιγμα αυτού του αρχείου. 434 00:22:47,560 --> 00:22:48,060 Σωστά; 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 Και είναι ανάγνωση από αυτό. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 Φυσικά, ελέγχοντας αν είναι άκυρη. 439 00:22:55,540 --> 00:22:57,220 Και τότε θα είναι η εκτύπωση. 440 00:22:57,220 --> 00:23:01,460 Αν είναι μηδενική, είναι ακριβώς μας λέει ότι αυτό δεν είναι ένα αρχείο που υπάρχει. 441 00:23:01,460 --> 00:23:04,290 Επειδή θυμάμαι, με διαβάστε το αρχείο μας πρέπει να υπάρχει. 442 00:23:04,290 --> 00:23:04,810 Σωστά; 443 00:23:04,810 --> 00:23:06,870 Με γράφουν και προσάρτησης, μπορείτε να πάρετε μακριά με αυτό. 444 00:23:06,870 --> 00:23:08,970 Αλλά με την ανάγνωση, το αρχείο μας πρέπει να υπάρχει. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> Και στη συνέχεια, εάν υπάρχει, τι κάνουμε εδώ; 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 Ας ξεκινήσει εδώ. 449 00:23:15,780 --> 00:23:18,815 Τι είναι αυτό do-- αυτό το πρώτο χαρακτήρα. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 Τι κάνει; 452 00:23:21,790 --> 00:23:24,100 Παίρνει ένα χαρακτήρα, σωστά; 453 00:23:24,100 --> 00:23:25,400 Λοιπόν, τι είναι αυτό που κάνει; 454 00:23:25,400 --> 00:23:26,775 Είναι να πάρει τον πρώτο χαρακτήρα. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 Όποιος ξέρει ΕΟΦ; 457 00:23:30,200 --> 00:23:31,170 >> ΚΟΙΝΟ: Τέλος του αρχείου; 458 00:23:31,170 --> 00:23:32,680 >> ΟΜΙΛΗΤΗΣ 1: Τέλος του file-- ακριβώς. 459 00:23:32,680 --> 00:23:35,310 Έτσι, πρόκειται να περάσουν από ολόκληρο το αρχείο, σωστά; 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 Και τότε θα πρόκειται για την ενημέρωση από να πάρει κάθε μεταγενέστερη χαρακτήρα. 462 00:23:40,780 --> 00:23:41,565 Σωστά; 463 00:23:41,565 --> 00:23:43,636 Και τι είναι αυτό που κάνει; 464 00:23:43,636 --> 00:23:44,760 ΚΟΙΝΟ: Κάνοντας ότι in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> ΟΜΙΛΗΤΗΣ 1: putchar εκτυπώσεις στην προφύλαξη οθόνης σας. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [Δεν ακούγεται] ο χαρακτήρας. 469 00:23:51,950 --> 00:23:54,300 Και στη συνέχεια, όταν αυτό [δεν ακούγεται] Αυτό θα κλείσει το αρχείο. 470 00:23:54,300 --> 00:23:57,370 >> ΚΟΙΝΟ: Δεν χρειάζεστε ένα [; άλλο; ?] 471 00:23:57,370 --> 00:23:59,005 >> ΟΜΙΛΗΤΗΣ 1: Όχι απαραίτητα. 472 00:23:59,005 --> 00:24:01,480 Θέλω να πω, αυτό είναι το είδος της σιωπηρής σε αυτό. 473 00:24:01,480 --> 00:24:06,780 Επειδή αυτό επιστρέφει, όμως, εφ ' καθώς αυτό δεν πιάσει αυτό, είστε μια χαρά. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 Θέλω να πω ότι είναι μάλλον καλό πρακτική να κάνει ένα άλλο. 476 00:24:10,250 --> 00:24:15,755 Αλλά ένας άλλος δεν είναι πάντα απαραίτητα ειδικά 477 00:24:15,755 --> 00:24:17,610 αν έχετε κάτι σαν μια επιστροφή, η οποία 478 00:24:17,610 --> 00:24:20,640 σημαίνει ότι σε αυτή την περίπτωση, αν τα αλιεύματα αυτό, το πρόγραμμά σας θα τελειώσει 479 00:24:20,640 --> 00:24:21,850 και ποτέ δεν θα φτάσουμε σε αυτό. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 Είναι περισσότερο για την περίπτωση που είστε δεν είναι κατ 'ανάγκην επανέρχεται κάτι. 482 00:24:29,190 --> 00:24:31,370 Διότι, αν αυτό δεν ήταν επιστροφή τίποτα, 483 00:24:31,370 --> 00:24:34,430 αυτό θα σήμαινε ότι αν αυτό ήταν αλήθεια, το υπόλοιπο αυτό θα εξακολουθεί να τρέχει. 484 00:24:34,430 --> 00:24:36,138 Και σε αυτή την περίπτωση, μπορείτε Θα ήθελα μια ψευδή. 485 00:24:36,138 --> 00:24:38,240 Αν αυτό είναι που επιστρέφουν, και τέλος του προγράμματός σας, 486 00:24:38,240 --> 00:24:41,960 ένα άλλο, δεν είναι απαραίτητο όλα το χρόνο, ανάλογα με τα συμφραζόμενα. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 Ιακώβ, δεν έχετε μια ερώτηση; 489 00:24:44,375 --> 00:24:46,100 Κοινό: Ναι. 490 00:24:46,100 --> 00:24:49,300 Έτσι κάνει fgetc πάρει τον επόμενο χαρακτήρα; 491 00:24:49,300 --> 00:24:50,734 Πώς να αυξήσει το χαρακτήρα; 492 00:24:50,734 --> 00:24:51,400 ΟΜΙΛΗΤΗΣ 1: Ναι. 493 00:24:51,400 --> 00:24:52,774 Έτσι fgetc παίρνει τον επόμενο χαρακτήρα. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 Μπορείτε να σκεφτείτε από το όπως η C ++, κατά μία έννοια. 496 00:24:56,866 --> 00:24:58,350 >> ΚΟΙΝΟ: Λοιπόν, τι ήταν ΕΟΦ; 497 00:24:58,350 --> 00:25:00,877 >> ΟΜΙΛΗΤΗΣ 1: ΕΟΦ είναι το τέλος του αρχείου. 498 00:25:00,877 --> 00:25:03,960 Είναι απλά ένας δείκτης που σας επιτρέπει να γνωρίζετε ότι είστε στο τέλος του αρχείου σας. 499 00:25:03,960 --> 00:25:06,742 Έτσι, αυτό πρόκειται να εκτυπώσετε στο πρότυπο σας έξω. 500 00:25:06,742 --> 00:25:08,950 Και στη συνέχεια, πρόκειται να κλείσει το αρχείο όταν το κάνει. 501 00:25:08,950 --> 00:25:10,700 Και τότε ας πάει να το επόμενο αρχείο, σωστά; 502 00:25:10,700 --> 00:25:12,660 Έτσι, συνολικά, αυτό που κάνει αυτό το πρόγραμμα; 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [Δεν ακούγεται] 505 00:25:16,090 --> 00:25:16,900 >> ΟΜΙΛΗΤΗΣ 1: Ναι. 506 00:25:16,900 --> 00:25:18,770 Είναι απλά τυπώνει τα πάντα εκεί. 507 00:25:18,770 --> 00:25:23,270 Έτσι, αν εσείς έχετε χρησιμοποιήσει ποτέ CAT και στη συνέχεια το όνομα κάποιου file-- 508 00:25:23,270 --> 00:25:26,240 Δεν ξέρω αν κάποιος από εσάς έχει κάνει ποτέ ότι στο τερματικό σας. 509 00:25:26,240 --> 00:25:29,630 Αλλά αν χρησιμοποιείτε ποτέ το εντολή CAT-- Γ-Α-T-- 510 00:25:29,630 --> 00:25:31,880 και, στη συνέχεια, ανεξάρτητα από το αρχείο έχετε there-- το 511 00:25:31,880 --> 00:25:37,260 εκτυπώνει έξω στο τερματικό σας, η οποία μπορεί να είναι εξαιρετικά βολικό για κάποια πράγματα. 512 00:25:37,260 --> 00:25:38,746 Μου αρέσει πολύ να χρησιμοποιούν. 513 00:25:38,746 --> 00:25:40,120 Μήπως αυτό έχει νόημα για όλους; 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 >> Εντάξει, έτσι το καθήκον σας now-- είτε από τον εαυτό σας ή με τους ανθρώπους γύρω you-- 517 00:25:46,530 --> 00:25:54,930 είναι να γράψετε μόνο ένα απλό πρόγραμμα ότι θα γράψω απλά "Hello, world!" 518 00:25:54,930 --> 00:25:56,255 έξω σε ένα αρχείο. 519 00:25:56,255 --> 00:26:00,215 >> [Δεν ακούγεται] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [Δεν ακούγεται] 522 00:26:57,040 --> 00:26:59,248 >> ΟΜΙΛΗΤΗΣ 1: Ήμουν όπως, έκανε Το κάνω άσχημα την τελευταία εβδομάδα; 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 Δεν νομίζω ότι ήταν τόσο κακό. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 Χαίρομαι που είστε όλοι εδώ. 527 00:27:03,520 --> 00:27:04,655 Είναι πραγματικά με κάνει ευτυχισμένη. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 Είμαι ένα κορίτσι από την απλή ευχαρίστηση. 530 00:27:10,160 --> 00:27:11,688 Μου αρέσει μόνο όταν το τμήμα μου φοιτά. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 Έτσι είμαι απλά να πάρει αυτό που ξεκίνησε για εσείς, έτσι ώστε να μπορούμε να κωδικοποιήσει μαζί. 533 00:27:18,270 --> 00:27:22,290 Δεν μου αρέσει βάζοντας ο καθένας για το σημείο αν θέλετε να είναι. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> ΚΟΙΝΟ: Για το κουίζ, κάνουμε πρέπει να γράψουμε ένα πρόγραμμα; 536 00:27:30,086 --> 00:27:33,260 >> ΟΜΙΛΗΤΗΣ 1: Μπορεί να σας ζητηθεί να γράφω ένα απλό και προγράμματα με το χέρι. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 Yup. 539 00:27:36,590 --> 00:27:38,510 >> ΚΟΙΝΟ: Το κουίζ είναι την επόμενη εβδομάδα, σωστά; 540 00:27:38,510 --> 00:27:40,108 >> ΟΜΙΛΗΤΗΣ 1: Το κουίζ είναι την επόμενη Τετάρτη. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 Αυτό σημαίνει ότι υπάρχει ένα υπέροχο [; ΧΑΚ;] ταξινόμησης γλέντι, το οποίο 543 00:27:43,730 --> 00:27:50,390 σημαίνει ότι θα έχετε τα αποτελέσματά σας πίσω που night-- σε ποια χρονική στιγμή; 544 00:27:50,390 --> 00:27:50,890 Ποιος ξέρει; 545 00:27:50,890 --> 00:27:51,973 Αλλά θα είναι εκείνο το βράδυ. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> Εντάξει. 548 00:28:02,855 --> 00:28:04,250 Πώς θέλουμε να αρχίσουμε αυτό; 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 Θα σας δώσω ένα hint-- ξεκινά με αυτό. 551 00:28:09,630 --> 00:28:11,455 >> ΚΟΙΝΟ: Θα πρέπει να ανοίξετε ένα αρχείο. 552 00:28:11,455 --> 00:28:12,250 >> ΟΜΙΛΗΤΗΣ 1: Ναι. 553 00:28:12,250 --> 00:28:14,060 Έτσι, ό, τι θέλετε να καλέσετε αυτό; 554 00:28:14,060 --> 00:28:16,150 Μήπως απλά θέλετε να το ονομάσουμε "αρχείο"; 555 00:28:16,150 --> 00:28:17,480 Ας το κάνουμε εύκολο. 556 00:28:17,480 --> 00:28:26,752 Έτσι fopen-- τι μας δοκιμή εξόδου πρόκειται να είναι; 557 00:28:26,752 --> 00:28:36,130 Καλέστε το "Γεια σας." 558 00:28:36,130 --> 00:28:37,810 Και ποιος είναι ο τρόπος μας; 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 Τι κάνουμε με αυτό το αρχείο; 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> ΚΟΙΝΟ: Διαβάστε. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 Γράφοντας. 565 00:28:44,900 --> 00:28:46,191 ΟΜΙΛΗΤΗΣ 1: Σας γράφουμε για αυτό. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 Υπέροχο. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 Εντάξει, έτσι έχουμε αυτό το αρχείο τώρα. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 Τι πρέπει να κάνουμε; 572 00:28:56,212 --> 00:28:57,420 ΚΟΙΝΟ: Ελέγξτε αν είναι άκυρη. 573 00:28:57,420 --> 00:28:59,820 ΟΜΙΛΗΤΗΣ 1: Ελέγξτε αν είναι null-- ακριβώς. 574 00:28:59,820 --> 00:29:01,980 Αυτό είναι που μου αρέσει να ακούω. 575 00:29:01,980 --> 00:29:05,930 Αυτό θα πρέπει να είναι αυτόματη, ειδικά λίγο πολύ από αυτό το σημείο. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 Αν αρχίσετε segfaulting, ίσως δεν ελέγχει για μηδενική κάπου. 578 00:29:10,950 --> 00:29:12,480 Εννέα στις δέκα φορές, ότι είναι πρόκειται να είναι το σφάλμα σας. 579 00:29:12,480 --> 00:29:15,400 Έτσι, αν θα μπορούσατε να πάρετε μόνο στο συνήθεια, πάντα να ελέγχετε αν είναι μηδενική, 580 00:29:15,400 --> 00:29:18,150 η ζωή σας πρόκειται να είναι ωραία και easy-- ή ευκολότερη. 581 00:29:18,150 --> 00:29:19,480 >> Έτσι ελέγξτε για να δείτε αν είναι άκυρη. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 Έτσι, αν δεν είναι μηδενική, το οποίο είναι αυτό που ισούται με το κτύπημα 584 00:29:24,820 --> 00:29:26,784 means-- δεν null-- είναι έγκυρη. 585 00:29:26,784 --> 00:29:27,700 Τι θέλουμε να κάνουμε; 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 Εμείς απλά θέλετε να εκτυπώσετε σε αυτό το αρχείο, σωστά; 588 00:29:31,570 --> 00:29:32,923 Λοιπόν, τι θα πάμε να χρησιμοποιήσετε; 589 00:29:32,923 --> 00:29:34,092 >> ΚΟΙΝΟ: fprintf 590 00:29:34,092 --> 00:29:36,800 >> ΟΜΙΛΗΤΗΣ 1: Fprintf-- υπέροχο. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 Και fprintf διαρκεί δύο arguments-- όπου πρόκειται και τι θέλουμε να εκτυπωθούν. 593 00:29:44,000 --> 00:29:45,820 Έτσι ποια είναι η πρώτη; 594 00:29:45,820 --> 00:29:46,570 Πού είναι αυτό που πηγαίνει; 595 00:29:46,570 --> 00:29:47,490 >> ΚΟΙΝΟ: Αρχείο. 596 00:29:47,490 --> 00:29:48,785 >> ΟΜΙΛΗΤΗΣ 1: Δεν πρόκειται να καταθέσει. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 Και τι θέλουμε τυπωμένο; 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "Γεια σου, κόσμε!" 601 00:29:58,065 --> 00:29:58,565 Εντάξει. 602 00:29:58,565 --> 00:30:03,670 Έχουμε μια τελευταία thing-- ένα άλλο μεγάλο παράδειγμα εδώ. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 ΚΟΙΝΟ: Κλείσιμο. 605 00:30:05,145 --> 00:30:05,853 ΟΜΙΛΗΤΗΣ 1: Κλείσιμο. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 Εκεί θα πάτε. 608 00:30:10,540 --> 00:30:13,384 >> ΚΟΙΝΟ: Είναι αυτό συμβαίνει αν το αρχείο είναι άκυρη; 609 00:30:13,384 --> 00:30:15,050 ΟΜΙΛΗΤΗΣ 1: Όχι, αυτό είναι, αν δεν είναι μηδενική. 610 00:30:15,050 --> 00:30:16,881 ΚΟΙΝΟ: Ω, αν είναι not-- ΟΚ. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 Για την fopen και στη συνέχεια το δύο επιχειρήματα που πάει μέσα, 613 00:30:25,410 --> 00:30:27,655 τι κάνει το πρώτο επιχείρημα σημαίνει πάλι; 614 00:30:27,655 --> 00:30:30,392 >> ΟΜΙΛΗΤΗΣ 1: Το επιχείρημα είναι ακριβώς όπως το όνομα του αρχείου 615 00:30:30,392 --> 00:30:31,350 ότι θέλετε να πάτε. 616 00:30:31,350 --> 00:30:36,020 Έτσι, μετά από αυτό τρέχει, τι θα κάνατε έχουν κάποιο αρχείο που ονομάζεται "γεια" 617 00:30:36,020 --> 00:30:38,320 ότι είχε "Hello, world" μέσα σε αυτό. 618 00:30:38,320 --> 00:30:38,820 Αυτό είναι όλο. 619 00:30:38,820 --> 00:30:39,500 Απλά το όνομα. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> ΚΟΙΝΟ: Και δεδομένου ότι είναι το γράψιμο, η το αρχείο δεν πρέπει να υπάρχει ήδη. 622 00:30:48,650 --> 00:30:49,675 Είναι ότι αυτό που είπατε; 623 00:30:49,675 --> 00:30:50,410 >> ΟΜΙΛΗΤΗΣ 1: Δεξιά. 624 00:30:50,410 --> 00:30:50,910 Ακριβώς. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 Αν το "Hello" ως ένα αρχείο δεν υπάρχει ακόμα, είναι 627 00:30:55,839 --> 00:30:58,380 πρόκειται να δημιουργήσει ένα αρχείο που ονομάζεται Γεια σας "και να γράψει σε αυτό για σας. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> ΚΟΙΝΟ: Όταν λέτε το πρόγραμμα για έγραψε στο αρχείο, 630 00:31:03,610 --> 00:31:08,075 γιατί γράφεις "αρχείο" αντί του το όνομα του αρχείου και fprintf-- 631 00:31:08,075 --> 00:31:13,600 >> ΟΜΙΛΗΤΗΣ 1: Επειδή σε αυτή την περίπτωση, έχουμε ότι οι μεγάλες FILE-- όλα σε caps-- αστέρι, 632 00:31:13,600 --> 00:31:14,260 αρχείο. 633 00:31:14,260 --> 00:31:17,370 Έτσι είναι ένας δείκτης για το αρχείο ότι είστε μιλάμε. 634 00:31:17,370 --> 00:31:19,930 Αυτός είναι ο τρόπος που θα αναφερθώ μόνο σε αυτό. 635 00:31:19,930 --> 00:31:24,850 Έτσι, σε αυτή την περίπτωση, μπορείτε μπορεί να σκεφτεί file-- AHA, 636 00:31:24,850 --> 00:31:31,271 μπορούμε να χρησιμοποιήσουμε this-- αρχείο εδώ αναφέρεται στο άνοιγμα του "Hello" 637 00:31:31,271 --> 00:31:32,145 και να αφήνει να γράψω. 638 00:31:32,145 --> 00:31:34,728 >> ΚΟΙΝΟ: Θα βάλουμε ένα "Γεια σας" αντί [; ακριβώς;] αρχείο f; 639 00:31:34,728 --> 00:31:40,160 ΟΜΙΛΗΤΗΣ 1: Όχι, επειδή "Γεια σας" πρέπει να είναι ανοικτή και επεξεργάσιμα. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 Φάκελος εδώ είναι σαν ένα ένδειξη που λέει εντάξει, εμείς 642 00:31:45,980 --> 00:31:49,190 έχουν αυτό το file-- hello-- ότι ψάχνουμε σε. 643 00:31:49,190 --> 00:31:50,680 Έχει ανοίξει. 644 00:31:50,680 --> 00:31:52,140 Και πρόκειται να γράψει σε αυτό. 645 00:31:52,140 --> 00:31:55,130 Εάν χρησιμοποιείτε μόνο "Γεια σας", που εγκλείεται σε αυτό. 646 00:31:55,130 --> 00:31:56,846 Έτσι πρόκειται να φρικάρεις. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 Θέλω να πω, θα μπορούσατε να έχετε ονομάσει. 649 00:32:00,300 --> 00:32:03,960 Θα μπορούσε να έχει κάνει το αρχείο, αστέρι, "Γεια σας", ισούται με αυτό. 650 00:32:03,960 --> 00:32:07,840 Αλλά το όλο θέμα είναι ότι σας χρειάζεται ένα δείκτη αστέρων αρχείο για 651 00:32:07,840 --> 00:32:09,281 να είναι σε θέση να χρησιμοποιήσετε αυτές τις λειτουργίες. 652 00:32:09,281 --> 00:32:11,280 ΚΟΙΝΟ: Θα μπορούσατε να κάνετε αρχείο, αστέρι, αρχείο, "Γεια σας" 653 00:32:11,280 --> 00:32:13,113 ή μήπως θα πρέπει να θέσει αρχείο αστέρων, αρχείο με αυτό; 654 00:32:13,113 --> 00:32:16,330 ΟΜΙΛΗΤΗΣ 1: Θα μπορούσε να κάνει το αρχείο, αστέρι, "Γεια σας." 655 00:32:16,330 --> 00:32:19,790 Μπορείτε να αλλάξετε αυτή να ανεξάρτητα από το όνομα που θέλετε. 656 00:32:19,790 --> 00:32:22,114 Είναι εντελώς αυθαίρετη τι όνομα είναι. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 Μπορείτε να το ονομάσετε τίποτα. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 Ονομάστε αυτό που φέρουν τα μακαρόνια, αν ήθελε. 661 00:32:28,020 --> 00:32:29,690 >> ΚΟΙΝΟ: Τι είναι το "W" σε εισαγωγικά για; 662 00:32:29,690 --> 00:32:31,540 >> ΟΜΙΛΗΤΗΣ 1: Το "W" είναι ακριβώς η κατάσταση. 663 00:32:31,540 --> 00:32:33,170 Έτσι γράφουμε σε αυτό το αρχείο. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 Όλοι καλό; 666 00:32:35,320 --> 00:32:36,227 Σαφή; 667 00:32:36,227 --> 00:32:36,981 Ναι. 668 00:32:36,981 --> 00:32:40,365 >> ΚΟΙΝΟ: Έτσι, όταν γράφει αυτό αρχείο, όπου εμείς στη συνέχεια να βρει αυτό το αρχείο; 669 00:32:40,365 --> 00:32:43,820 >> ΟΜΙΛΗΤΗΣ 1: Θα είναι στην ίδια κατάλογο που είστε σήμερα. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 Αν είστε σε το chipset τρία και τρέχετε αυτό, μέσα το chipset σας 672 00:32:48,880 --> 00:32:52,600 τρεις φάκελος πρόκειται να είναι Αυτό το αρχείο ονομάζεται "Γεια σας." 673 00:32:52,600 --> 00:32:53,160 Cool; 674 00:32:53,160 --> 00:32:53,757 Όλοι καλό; 675 00:32:53,757 --> 00:32:55,840 Νιώθω σαν να είστε όλοι να πάρει αυτό, το οποίο είναι μεγάλο. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 ΟΚ. 678 00:32:57,790 --> 00:33:05,960 Έτσι, πίσω στο show-- διαφανειών μου Λατρεύω όταν λειτουργούν τα πράγματα. 679 00:33:05,960 --> 00:33:08,674 Εντάξει, είναι pointers-- εσείς ενθουσιασμένοι; 680 00:33:08,674 --> 00:33:09,465 Δείκτες είναι μεγάλη. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 Παίρνουν λίγο να τυλίξτε το κεφάλι σας γύρω. 683 00:33:13,580 --> 00:33:15,288 Αυτή είναι η δεύτερη χρονιά μου διδασκαλίας δείκτες. 684 00:33:15,288 --> 00:33:16,850 Και νομίζω ότι τελικά το πήρα. 685 00:33:16,850 --> 00:33:18,650 Έτσι, αν αγωνίζονται, είναι εντάξει. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 Όπως είπα και πριν, αντλώντας εικόνες βοηθάει πολύ με πράγματα στο CS, 688 00:33:24,070 --> 00:33:27,400 όσο και πιστεύω ότι οι άνθρωποι τείνουν να σκέφτονται το OH, είμαστε σε έναν υπολογιστή. 689 00:33:27,400 --> 00:33:28,399 Εμείς πρέπει απλά κώδικα. 690 00:33:28,399 --> 00:33:30,190 No-- εικόνες σχεδίασης θα σας βοηθήσει πραγματικά. 691 00:33:30,190 --> 00:33:32,773 Και θέλω πραγματικά να σας ενθαρρύνω να αξιοποιήσει την πλευρά kindergartner σας 692 00:33:32,773 --> 00:33:35,010 και να αναδείξει κραγιόνια ή δείκτες και ισοπαλία. 693 00:33:35,010 --> 00:33:36,110 Επειδή αυτό θα σας βοηθήσει. 694 00:33:36,110 --> 00:33:39,380 Και αν με δείτε σε ώρες γραφείου, εγώ θα μεταφέρουν γύρω από στοίβες από χαρτί 695 00:33:39,380 --> 00:33:41,580 με στυλό αντλώντας τα πράγματα έξω. 696 00:33:41,580 --> 00:33:44,370 >> Έτσι, ιδιαίτερα με pointers-- ζωγραφίσουν. 697 00:33:44,370 --> 00:33:47,970 Και είμαι σίγουρος ότι είμαστε πραγματικά πρόκειται να αντλήσει μερικές φωτογραφίες εδώ. 698 00:33:47,970 --> 00:33:51,270 >> Έτσι, εσείς όλα τα πήρε για να δείτε Binky, αυτό το δροσερό πράγμα πλαστελίνης. 699 00:33:51,270 --> 00:33:54,720 Και πιστεύουμε ότι είναι πραγματικά αστείο όταν που εκρήγνυται σε ένα σωρό κομμάτια. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 Είναι κάποια κωμική ανακούφιση για την κατηγορία. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 Γ [δεν ακούγεται] αυτή η μεγάλη ικανότητα να είναι σε θέση να ελέγχουν τη μνήμη. 704 00:34:05,900 --> 00:34:10,090 Και αυτό είναι ένα από τα πράγματα που πραγματικά κάνει μια τέτοια ισχυρή γλώσσα. 705 00:34:10,090 --> 00:34:13,469 Αλλά έρχεται με μεγάλη δύναμη μεγάλη ευθύνη. 706 00:34:13,469 --> 00:34:16,230 Και τρελά πράγματα μπορούν να συμβούν εάν δεν είστε προσεκτικοί. 707 00:34:16,230 --> 00:34:18,560 Έτσι, όταν είστε με τη χρήση δείκτες, θέλετε να κάνετε 708 00:34:18,560 --> 00:34:21,440 βεβαιωθείτε ότι μπορείτε πραγματικά να καταλάβετε ακριβώς τι κάνετε. 709 00:34:21,440 --> 00:34:25,530 Ας ελπίσουμε ότι η επόμενη λίγο ώρα θα σας βοηθήσει να καταλάβετε πραγματικά 710 00:34:25,530 --> 00:34:27,850 δείκτες, πώς να τα χρησιμοποιούν, και πώς να τους χειριστούν. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> Έτσι memory-- Είμαι βέβαιος ότι έχουμε δει αυτό το διάγραμμα πριν. 713 00:34:33,460 --> 00:34:38,540 Έτσι, αυτό είναι μόνο ένα απλό διάγραμμα πώς τα πράγματα θα μπορούσαν να αποθηκευτούν μνήμη. 714 00:34:38,540 --> 00:34:43,145 Έτσι, έχετε βασικά αυτά τεράστιες συστοιχίες των μπλοκ ένα byte 715 00:34:43,145 --> 00:34:46,000 είναι ό, τι έχουμε here-- ελαφρά προσαυξήσεις κατά ένα κάθε φορά. 716 00:34:46,000 --> 00:34:51,810 Αυτό είναι το εξάγωνο [δεν ακούγεται] έτσι μπλοκ οκτώ-bit. 717 00:34:51,810 --> 00:34:55,510 Και κάθε μπλοκ συνδέεται με κάποιο δεκαεξαδικό διεύθυνση. 718 00:34:55,510 --> 00:34:58,750 Έτσι, αν ποτέ δείτε το 0x, αυτό είναι απλά notating 719 00:34:58,750 --> 00:35:00,670 ότι είναι μια διεύθυνση δεκαεξαδικό. 720 00:35:00,670 --> 00:35:03,970 Μπορείτε να υποθέσετε ότι αυτό σημαίνει κάποια διεύθυνση στη μνήμη. 721 00:35:03,970 --> 00:35:06,935 Μιλάμε για διευθύνσεις μνήμης κάθε φορά που θα δείτε δεκαεξαδικό. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> Έχουμε ints είναι μεταβλητές, πλωτήρες είναι μεταβλητές που αποθηκεύουν. 724 00:35:14,630 --> 00:35:16,260 Έτσι ints κατάστημα ints. 725 00:35:16,260 --> 00:35:17,430 Άρματα κατάστημα επιπλέει. 726 00:35:17,430 --> 00:35:20,260 Έτσι, έχουμε επίσης δείκτες ότι οι διευθύνσεις μνήμης κατάστημα. 727 00:35:20,260 --> 00:35:21,660 Αυτό είναι ένα είδος χαρτογράφησης. 728 00:35:21,660 --> 00:35:24,240 Δείκτες είναι αποκλειστικά για διευθύνσεις μνήμης. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 Έτσι, αυτό είναι σαν τον τύπο σας εκεί. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 Η συσκευή σας είναι 32-bit, το οποίο σημαίνει ότι η διεύθυνση της μνήμης σας είναι τέσσερα byte. 733 00:35:34,470 --> 00:35:37,830 Έτσι, κάθε δείκτης που έχετε Επίσης, πρόκειται να είναι τέσσερα byte. 734 00:35:37,830 --> 00:35:43,200 Ή αλλιώς αν είναι τέσσερα bytes, μνήμη είναι τέσσερα bytes. 735 00:35:43,200 --> 00:35:44,790 Δείκτες μνήμης κατάστημα. 736 00:35:44,790 --> 00:35:46,430 Ως εκ τούτου, είναι τέσσερα byte. 737 00:35:46,430 --> 00:35:48,460 Cool-- απλά θέλουν να ενισχύσουν αυτό. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> Θα πρέπει να πάρετε αυτό το κόμικ τώρα. 740 00:35:52,220 --> 00:35:55,040 Δεν ξέρω πόσοι από εσάς είναι xkcd οπαδούς, αλλά αγαπώ xkcd. 741 00:35:55,040 --> 00:35:55,780 Είναι μεγάλη. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> Εντάξει. 744 00:35:57,790 --> 00:36:01,640 Έτσι, δημιουργώντας pointers-- όπως είπα, είναι λίγο πολύ ακριβώς όπως οτιδήποτε άλλο. 745 00:36:01,640 --> 00:36:02,930 Έχετε έναν τύπο. 746 00:36:02,930 --> 00:36:04,050 Έχετε ένα όνομα. 747 00:36:04,050 --> 00:36:04,810 Σωστά; 748 00:36:04,810 --> 00:36:10,410 Αυτό είναι ό, τι έχουμε εκεί. [? Hex;] αστέρι σημαίνει ότι είναι ένας δείκτης, 749 00:36:10,410 --> 00:36:12,250 και στη συνέχεια ό, τι θέλετε να το ονομάσετε. 750 00:36:12,250 --> 00:36:15,770 Έτσι, ο τύπος αντιπροσωπεύει ό, τι μπορείτε να αποθηκεύσετε. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 Εντάξει; 753 00:36:17,990 --> 00:36:24,350 Με τον ίδιο τρόπο ότι αν το κάνουμε ints, ξέρουμε ότι την αποθήκευση ενός int εκεί. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 Με ένα δείκτη, το κατέχει μια διεύθυνση μνήμης. 756 00:36:30,280 --> 00:36:34,240 Αλλά τι σημαίνει είναι that-- εδώ είναι όπου ένα σχέδιο πρόκειται να έρθει σε πρακτικό. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 Έτσι, σε αυτή την περίπτωση, έχουμε μερικά value-- ας πούμε τέσσερα. 759 00:36:45,980 --> 00:36:49,306 Τέσσερις είναι σε μία διεύθυνση. 760 00:36:49,306 --> 00:36:49,805 Εντάξει; 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> Αυτή η πρώτη εδώ σημαίνει ότι είναι ένας δείκτης 2x. 763 00:36:56,170 --> 00:36:56,740 Σωστά; 764 00:36:56,740 --> 00:36:57,628 Είναι μερικά δείκτη x. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 x μπορεί να είναι κάτι, οτιδήποτε. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 Όποια και αν είναι x is-- έστωχ είναι τέσσερα. 769 00:37:05,130 --> 00:37:07,280 Είναι πρόκειται να αποθηκεύσετε το διεύθυνση μνήμης εδώ. 770 00:37:07,280 --> 00:37:12,260 Έτσι, int, αστέρι, x-- αυτό είναι κάποια άλλη υποδοχή στο memory-- 771 00:37:12,260 --> 00:37:13,590 ποιος ξέρει τι είναι αυτό. 772 00:37:13,590 --> 00:37:15,430 Αλλά πρόκειται να αποθηκεύσετε μια διεύθυνση εδώ. 773 00:37:15,430 --> 00:37:27,040 Έτσι, αυτό θα ήταν like-- σε αυτή την περίπτωση, οτιδήποτε, 774 00:37:27,040 --> 00:37:32,630 αποθηκεύεται στους 0x1-- ό αποθηκεύεται στην διεύθυνση που ο δείκτης μας κατέχει, 775 00:37:32,630 --> 00:37:35,280 πρέπει να ταιριάζει με αυτό που έχουμε ορίσει. 776 00:37:35,280 --> 00:37:40,330 Έτσι σε 0x1, σε αυτή την περίπτωση, αυτό είναι x. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 Αυτό μπορεί πάντοτε να είναι μόνο ένα int, ενώ είμαστε χρησιμοποιώντας αυτό. 779 00:37:49,340 --> 00:37:52,950 >> Ομοίως, αν έχουμε άλλο 1ε, ανεξαρτήτως 780 00:37:52,950 --> 00:37:59,130 διεύθυνση αποθηκεύεται με μια ομάδα έχει να είναι ίδια char-- πράγμα με z. 781 00:37:59,130 --> 00:38:05,840 Κατά τον ίδιο τρόπο, κάθε φορά που προσπαθήσουμε και να κάνουμε intx ισούται με 0,4, 782 00:38:05,840 --> 00:38:09,275 πρόκειται να φωνάζω σε σας και να όπως όχι, είπατε ότι ήθελε έναν int. 783 00:38:09,275 --> 00:38:10,525 Αυτό υποτίθεται ότι είναι ένας int. 784 00:38:10,525 --> 00:38:11,900 Σταματήστε να προσπαθείτε να κάνετε ένα πλωτήρα. 785 00:38:11,900 --> 00:38:14,150 >> Οπότε αφήστε τα πράγματα να είναι αυτό που θέλουν να είναι. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 Αφήστε τα πράγματα να είναι οι ίδιοι. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 Τόσο μεγάλο πράγμα είναι απλά ανεξάρτητα από τον τύπο του δείκτη 790 00:38:23,450 --> 00:38:26,101 είναι, αυτό είναι το μόνο πράγμα που μπορεί να αποθηκεύσει εκεί. 791 00:38:26,101 --> 00:38:26,600 Εντάξει; 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 Με την πρακτική, όπως με την περασμένη εβδομάδα, τα πάντα 794 00:38:31,160 --> 00:38:32,817 Φαίνεται πραγματικά το είδος της αφηρημένης. 795 00:38:32,817 --> 00:38:34,150 Εμείς πάμε να κάνουμε κάποια πρακτική. 796 00:38:34,150 --> 00:38:36,760 Θα πρέπει να έχει περισσότερο νόημα. 797 00:38:36,760 --> 00:38:44,580 >> Έτσι αναφορά και dereferencing-- είναι πραγματικά σημαντικό να πάρετε αυτά τα ίσια. 798 00:38:44,580 --> 00:38:46,630 Έχω ακόμα να ανανεώσετε κάθε τώρα και στη συνέχεια. 799 00:38:46,630 --> 00:38:48,450 Και είμαι σαν αναμονή, σε ποιον θέλω; 800 00:38:48,450 --> 00:38:56,080 Έτσι, το εμπορικό και πραγματικά θα δώσει σας η αναφορά ή η διεύθυνση του. 801 00:38:56,080 --> 00:39:00,100 Έτσι, επιστρέφει τη διεύθυνση στην μνήμη του οποίου μεταβλητής αποθηκεύεται. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 Έτσι, πρόκειται να επιστρέψει στην πραγματικότητα για εσάς ένα δεκαεξαδικό, ενώ εύρεση τιμών που 804 00:39:07,020 --> 00:39:10,641 είναι πραγματικά πρόκειται να σας δώσει τα δεδομένα που είναι αποθηκευμένα εκεί. 805 00:39:10,641 --> 00:39:11,140 Εντάξει; 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 Έτσι θα πάμε να δούμε ένα παράδειγμα πολύ γρήγορα, ή στην πραγματικότητα μέχρι το επόμενο. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> ΟΚ. 810 00:39:19,150 --> 00:39:21,790 Γι 'αυτό και πρέπει να σκεφτούμε πραγματικά προσεκτικά για αυτό. 811 00:39:21,790 --> 00:39:23,860 Έτσι, εδώ έχουμε κάποια ακέραιος x. 812 00:39:23,860 --> 00:39:26,485 Πάω να προσπαθήσουμε και να σχεδιάσετε αυτό στο καλύτερο των δυνατοτήτων μου. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 Έτσι θα πάμε να έχουν αυτήν την υποδοχή x. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 Και αυτό είναι αποθήκευση πέντε. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 Η διεύθυνσή του είναι 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 Όλα καλά. 822 00:39:44,100 --> 00:39:45,470 >> Έτσι τώρα έχουμε αυτό το δείκτη. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 Ήταν εδώ. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 Και το εμπορικό και μας δίνει η διεύθυνση του κάτι. 827 00:39:57,560 --> 00:40:00,780 Έτσι, σε αυτή την περίπτωση, είναι η διεύθυνση του x. 828 00:40:00,780 --> 00:40:01,875 Ποια είναι η διεύθυνση του x; 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- και αυτό το δείκτη είναι σε 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 Έτσι, μπορείτε να σκεφτείτε για αυτό δείκτη, 04, επισημαίνει ακριβώς εδώ. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 Και όπου και αν ονομάζεται δείκτες γιατί όπως έχουμε περισσότερο σε αυτό, 837 00:40:25,740 --> 00:40:28,450 θα πάμε να δούμε επισημαίνοντας τα πράγματα. 838 00:40:28,450 --> 00:40:31,470 Και ένα μπλοκ που δείχνουν προς ένα άλλο μπλοκ θα κάνει πολύ πιο λογικό. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 Έτσι, εδώ είναι δύο. 841 00:40:33,890 --> 00:40:38,230 Και τότε έχουμε κάποια αντίγραφο, το οποίο είναι what-- 0x0C. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 Και πρόκειται να dereference δείκτη μας. 844 00:40:43,420 --> 00:40:46,790 >> Έτσι, αυτό που λέει είναι Εντάξει, εδώ είναι δείκτης μας. 845 00:40:46,790 --> 00:40:53,090 Η αξία που αποθηκεύει είναι 0x04, Και τι αυτό λέει είναι να πάει σε αυτή τη διεύθυνση 846 00:40:53,090 --> 00:40:54,300 και να μου πείτε τι σημαίνει αυτό. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 Έτσι ώστε να είναι αποτελεσματικά τι είναι αυτό το βέλος κάνει. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 Μπορείτε να σκεφτείτε αυτό σαν αστέρι σας. 851 00:41:01,280 --> 00:41:05,410 Έτσι, εντάξει, όταν κάνουμε αστέρι, αυτό σημαίνει ακολουθήσουν. 852 00:41:05,410 --> 00:41:06,810 Πηγαίνετε σε αυτή τη διεύθυνση. 853 00:41:06,810 --> 00:41:11,430 Και αυτό είναι βασικά ακριβώς παρακάτω Αυτό το βέλος σε αυτό το κομμάτι της μνήμης. 854 00:41:11,430 --> 00:41:15,380 Και να μας δώσει ό, τι είναι σε αυτό, το οποίο είναι 5. 855 00:41:15,380 --> 00:41:18,840 Είναι γιατί το δικό μας αντίγραφο είναι ίσο με 5. 856 00:41:18,840 --> 00:41:20,120 Μήπως αυτό έχει νόημα; 857 00:41:20,120 --> 00:41:22,769 Μήπως κάποιος πρέπει να πάω μέσα ότι και πάλι, ή πιο αργά; 858 00:41:22,769 --> 00:41:24,560 Θα ήθελα να πάω μέσα από αυτό για μια ακόμη φορά; 859 00:41:24,560 --> 00:41:25,060 ΟΚ. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 Εμείς πάμε για να επανασχεδιάσει και πάλι. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 Όταν αρχίσουμε, συμφωνούμε όλοι έχουμε κάποια κομμάτι της μνήμης που είναι μια μεταβλητή 864 00:41:37,205 --> 00:41:40,890 x που θέτουμε ίση με 5. 865 00:41:40,890 --> 00:41:42,910 Εμείς δεν ελέγχει τις περιοχές όπου είναι στη μνήμη. 866 00:41:42,910 --> 00:41:45,520 Έτσι, αυτό το σημείο είναι ακριβώς αυθαίρετα. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 Καλή εκεί; 869 00:41:48,731 --> 00:41:49,230 ΟΚ. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 Στη συνέχεια, έχουμε προετοιμάσει ένα δείκτη σε int. 872 00:41:53,330 --> 00:41:56,900 Αυτός είναι ο λόγος που επιτρέπεται να επισημάνω x, επειδή έχουμε έναν int εδώ. 873 00:41:56,900 --> 00:42:00,840 Έχουμε ένα άλλο κομμάτι της μνήμη, διότι αυτό το δείκτη 874 00:42:00,840 --> 00:42:03,485 είναι μια μεταβλητή ακριβώς όπως και οτιδήποτε άλλο. 875 00:42:03,485 --> 00:42:06,615 Είναι αυθαίρετα κάποια χώρου στη μνήμη. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 Και αυτό που αποθηκεύει είναι η διεύθυνση του x. 878 00:42:10,830 --> 00:42:13,200 Ampersand σημαίνει ότι η διεύθυνση του x. 879 00:42:13,200 --> 00:42:14,575 Έτσι ποια είναι η διεύθυνση του x; 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> ΚΟΙΝΟ: Είναι zero-- 882 00:42:20,614 --> 00:42:21,280 ΟΜΙΛΗΤΗΣ 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 Έτσι then-- τελευταίο. 885 00:42:25,940 --> 00:42:30,650 Έχουμε και πάλι κάποια copy-- ακριβώς μια άλλη μεταβλητή. 886 00:42:30,650 --> 00:42:32,520 Οπότε ας αναθέσει κάποια αυθαίρετη θέση. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 Και εμείς dereference δείκτη μας. 889 00:42:38,080 --> 00:42:42,490 Το αστέρι σημαίνει ότι πάει για το διευθύνσεων που είναι αποθηκευμένα στο δείκτη μου. 890 00:42:42,490 --> 00:42:44,480 Πες μου τι είναι εκεί. 891 00:42:44,480 --> 00:42:47,290 Έτσι, η διεύθυνση αποθηκεύεται στο δείκτη μας είναι 0x04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 Έτσι, πάμε σε αυτή τη διεύθυνση. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 Είναι δείχνοντας σε αυτή τη διεύθυνση. 896 00:42:54,590 --> 00:42:57,481 Τι είναι μέσα σε αυτό το μπλοκ μνήμης; 897 00:42:57,481 --> 00:42:57,980 Είναι ένα πέντε. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 Έτσι, αυτό είναι ό, τι έχουμε εκχωρήσει αντίγραφο μας. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 Όλοι καλό; 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-- εικόνες. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> Έτσι, η παρακολούθηση των τιμών here-- είμαι πρόκειται να αφήσει εσείς σκεφτείτε αυτό. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 Μπορούμε να συντάξει μια άλλη εικόνα. 909 00:43:27,750 --> 00:43:31,260 Θέλω, όμως, να δοκιμάσετε και το λόγο μέσα από αυτό για τη δική σας για ένα λεπτό. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> Δεδομένου ότι δεν δίνουν μας μια διεύθυνση παράδειγμα, 912 00:44:04,149 --> 00:44:06,940 Είμαι ακριβώς πρόκειται να κάνει εμπορικό και x-- το οποίο θα πρέπει να βοηθήσει να προωθηθεί το σπίτι. 913 00:44:06,940 --> 00:44:07,950 Ampersand σημαίνει διεύθυνση. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> Έτσι, στην πρώτη, ο καθένας πάει με την πρώτη γραμμή. 916 00:44:12,360 --> 00:44:15,690 Μερικά x σετ για five-- κάποια τυχαία υποδοχή στη μνήμη. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 Int αστέρων δείκτη είναι ίση στη διεύθυνση του x, σωστά; 919 00:44:23,200 --> 00:44:28,180 Int δείκτη αστέρι δημιουργεί Αυτό το μπλοκ, καλεί το δείκτη, 920 00:44:28,180 --> 00:44:30,650 και αναθέτει στην διεύθυνση του x. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 Είμαι τρομερά σε συμπλεκτικά σύμβολα. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> Τώρα, αυτό που κάνουμε είναι να πούμε Εντάξει, dereference δείκτη μας. 925 00:44:40,550 --> 00:44:42,760 Έτσι πάμε Εντάξει, τι είναι στο δείκτη μας; 926 00:44:42,760 --> 00:44:44,820 Είναι σύμβολο και x. 927 00:44:44,820 --> 00:44:49,400 Πηγαίνετε στο εμπορικό και το Χ και τον επαναπροσδιορισμό αυτό. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> Μέχρι τώρα, σύμβολο X θα είναι 35. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 Έτσι, βασικά, όταν είστε εύρεση τιμών, πηγαίνετε στο OK. 932 00:45:05,174 --> 00:45:07,090 Θα πάμε να την κατάρτιση εικόνες όπως αυτή. 933 00:45:07,090 --> 00:45:09,423 Θα πάμε να την κατάρτιση βέλη σας για το πού είναι. 934 00:45:09,423 --> 00:45:16,030 Έτσι, πηγαίνω σε αυτήν την υποδοχή στη μνήμη και είτε να μου δώσει ότι πίσω αξία, ή να την τροποποιήσει. 935 00:45:16,030 --> 00:45:21,620 Σε αυτήν την περίπτωση, επειδή είμαστε σε αυτό τιμή, είμαστε το εκχώρηση να είναι 35. 936 00:45:21,620 --> 00:45:24,700 Ενώ στην τελευταία ένα, αν παρατηρήσετε, θα 937 00:45:24,700 --> 00:45:27,680 είχαν την ανάθεση ό, τι ήταν εδώ σε κάτι άλλο. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> Έτσι, έχουν αυτό το φοβερό πίνακα. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 Δεν είναι τόσο άσχημα. 942 00:45:36,890 --> 00:45:37,970 Εσείς εργάζονται σε αυτό. 943 00:45:37,970 --> 00:45:39,640 Πάω να το σύρει έξω στο διοικητικό συμβούλιο. 944 00:45:39,640 --> 00:45:41,306 Εμείς πάμε για να το συμπληρώσετε μαζί, εντάξει; 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 Έτσι αρπάξτε κάποιο χαρτί, πιάσε εταίρος, αρχίσουν να εργάζονται. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 Πάω να πάρει ένα μεγαλύτερο κομμάτι της κιμωλίας. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 Επειδή πρόκειται να είναι πολλά. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 ΟΚ. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 ΚΑΘΗΓΗΤΗΣ: Εντάξει. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 Ας ξεκινήσουμε με την πρώτη σειρά. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 Θα ξεκινήσουμε από εκεί, τότε εσείς μπορεί ίσως να λειτουργήσει μέσω κάποιου περισσότερο. 959 00:48:16,970 --> 00:48:17,870 ΟΚ. 960 00:48:17,870 --> 00:48:19,810 α ισούται β φορές γ ναι, ποια είναι; 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 Δεν είναι μια ερώτηση τεχνάσματος, το υπόσχομαι. 963 00:48:23,260 --> 00:48:24,440 >> Φοιτητής: 4 φορές 5. 964 00:48:24,440 --> 00:48:25,420 >> ΚΑΘΗΓΗΤΗΣ: 4 φορές 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 Έτσι τι είναι β; 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 Φοιτητής: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> ΚΑΘΗΓΗΤΗΣ: Και γ; 971 00:48:31,043 --> 00:48:31,542 Φοιτητής: 5. 972 00:48:31,542 --> 00:48:32,083 ΚΑΘΗΓΗΤΗΣ: 5. 973 00:48:32,083 --> 00:48:35,960 Και τότε αυτό είναι ακριβώς πρόκειται να να Ampersand ένα, σύμβολο β, 974 00:48:35,960 --> 00:48:38,575 ampersand C, σωστά; 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 Δεν είναι κακό. 977 00:48:40,596 --> 00:48:42,081 Είναι αρκετά απλό. 978 00:48:42,081 --> 00:48:42,580 ΟΚ. 979 00:48:42,580 --> 00:48:44,300 Έτσι, το επόμενο. 980 00:48:44,300 --> 00:48:48,725 Α ισούται με μια φορές c, στην περίπτωση κάποιος ήταν εξοικειωμένοι με αυτό. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 Είναι όλοι εξοικειωμένοι με τους χρόνους ισούται; 983 00:48:53,300 --> 00:49:00,105 Εντάξει, όλα αυτά means-- αυτό είναι συντομογραφία για το α ισούται φορές γ. 984 00:49:00,105 --> 00:49:04,840 Μπορείτε επίσης να το κάνετε με διαίρεση, με την προσθήκη, με αφαίρεση. 985 00:49:04,840 --> 00:49:12,130 Μπορείτε να κάνετε το α ισούται με, ή ένα συν ισούται με c σημαίνει το α ισούται με ένα συν C, ένα μείον ίση 986 00:49:12,130 --> 00:49:15,190 γ θα ήταν το α ισούται με ένα μείον γ. 987 00:49:15,190 --> 00:49:16,690 Είναι απλά συντακτική ζάχαρη. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> Έτσι, στην περίπτωση αυτή, το α είναι ίσο με φορές c θα μας δώσει ό, τι; 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 Και πάλι, δεν είναι μια ερώτηση παγίδα. 992 00:49:28,186 --> 00:49:28,965 >> Φοιτητής: 100. 993 00:49:28,965 --> 00:49:29,300 >> ΚΑΘΗΓΗΤΗΣ: 100. 994 00:49:29,300 --> 00:49:30,383 Μήπως κάτι άλλο να αλλάξει; 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 Όχι. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 Ίσως τελικά θα πάρει καλύτερα σε συμπλεκτικά σύμβολα μου. 999 00:49:39,850 --> 00:49:42,047 >> Φοιτητής: Εντάξει, συγγνώμη, πώς το βρήκες 100; 1000 00:49:42,047 --> 00:49:42,630 ΚΑΘΗΓΗΤΗΣ: Εντάξει. 1001 00:49:42,630 --> 00:49:46,594 Έτσι, το α είναι ίσο με ένα c φορές, έτσι ώστε ένα χρόνοι C. 1002 00:49:46,594 --> 00:49:48,510 Φοιτητής: Ω, είστε με τη χρήση α για την previous-- 1003 00:49:48,510 --> 00:49:49,135 ΚΑΘΗΓΗΤΗΣ: Ναι. 1004 00:49:49,135 --> 00:49:51,450 Έτσι, αυτές είναι οι πιο πρόσφατες τιμές μας. 1005 00:49:51,450 --> 00:49:53,990 Αυτά είναι ό, τι πρέπει να είναι χρήση καθώς προχωράμε προς τα κάτω, ΟΚ. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 Έτσι, b είναι το μόνο πράγμα που αλλάζει, σωστά; 1008 00:50:01,520 --> 00:50:02,910 Οπότε ας συμπληρώσετε ό, τι άλλο. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 Β Τι είναι β πρόκειται να είναι; 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 Για να είναι ή να μην είναι. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 Λοιπόν, τι είναι αυτό που κάνει; 1015 00:50:20,240 --> 00:50:21,605 Τι είναι το αστέρι pa κάνει; 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> Φοιτητής: Κωδικός στη θέση του PA. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> Φοιτητής: Όχι, δεν είναι αρκετά. 1020 00:50:27,480 --> 00:50:29,470 Έτσι, αυτό είναι ένα δ αναφοράς. 1021 00:50:29,470 --> 00:50:31,580 >> Φοιτητής: Έτσι β παραδίδεται αξία της ετησίως. 1022 00:50:31,580 --> 00:50:37,340 >> ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι είναι pa η διεύθυνση του ένα, σωστά; 1023 00:50:37,340 --> 00:50:42,430 Έτσι λέει να πάει εκεί όπου το α είναι αποθηκεύονται και να του δώσετε αυτή την τιμή. 1024 00:50:42,430 --> 00:50:43,884 Έτσι τι είναι β; 1025 00:50:43,884 --> 00:50:44,425 Φοιτητής: 100. 1026 00:50:44,425 --> 00:50:46,534 ΚΑΘΗΓΗΤΗΣ: 100. 1027 00:50:46,534 --> 00:50:47,450 Τέλεια. 1028 00:50:47,450 --> 00:50:49,879 Εντάξει, έτσι PC είναι αυτό που αλλάζει. 1029 00:50:49,879 --> 00:50:51,170 Όλα τα άλλα παραμένει το ίδιο. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 Τι είναι το PC θα είναι; 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 Απλή ανάθεση. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 Pc είναι ίση με PA, και τι είναι pa; 1036 00:51:05,990 --> 00:51:07,049 >> Φοιτητής: Ampersand ένα. 1037 00:51:07,049 --> 00:51:07,840 ΚΑΘΗΓΗΤΗΣ: Τέλεια. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 Τώρα παίρνουμε ενδιαφέρουσα. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 Εντάξει, ας σπάσει αυτό το ένα κάτω. 1042 00:51:15,230 --> 00:51:21,110 Κατ 'αρχάς, τι είναι β φορές γ, γιατί αυτό είναι το εύκολο μέρος του αυτό, σωστά; 1043 00:51:21,110 --> 00:51:22,360 Φορές Β γ is-- 1044 00:51:22,360 --> 00:51:23,320 >> Φοιτητής: 500. 1045 00:51:23,320 --> 00:51:28,880 >> ΚΑΘΗΓΗΤΗΣ: Ναι, έτσι τι είναι αυτό που κάνει, 1046 00:51:28,880 --> 00:51:33,705 Αν είναι PB αστέρων, τι αλλάζει; 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> Φοιτητής: Τι the-- 1049 00:51:37,242 --> 00:51:38,200 ΚΑΘΗΓΗΤΗΣ: Τι είναι το β; 1050 00:51:38,200 --> 00:51:41,340 Φοιτητής: Τι στο χώρο ότι ο Pb δείχνοντας. 1051 00:51:41,340 --> 00:51:43,406 ΚΑΘΗΓΗΤΗΣ: Και PB είναι στραμμένη to-- 1052 00:51:43,406 --> 00:51:43,905 ΜΑΘΗΤΗ: Β 1053 00:51:43,905 --> 00:51:46,740 ΚΑΘΗΓΗΤΗΣ: B. Έτσι, το μόνο πράγμα που αλλάζει είναι b, δεξιά. 1054 00:51:46,740 --> 00:51:50,800 Έτσι, β φορές c, 500. 1055 00:51:50,800 --> 00:51:52,367 Έτσι, αυτό είναι ό, τι αλλάζει τώρα. 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 Υπέροχο. 1060 00:52:00,840 --> 00:52:01,905 Είστε παιδιά κάνουν μεγάλη. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 Εντάξει, σπάζοντας αυτό το ένα κάτω. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 C αλλάζει, σωστά; 1065 00:52:09,630 --> 00:52:11,530 Έτσι, μπορούμε να γεμίσουμε και σε οτιδήποτε άλλο. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 Ας δούμε. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 ΟΚ. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 Γνωρίζουμε ότι ο C είναι πρόκειται να είναι η γινόμενο δύο αριθμών, σωστά; 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 Ποιοι είναι οι δυο αριθμοί, όμως; 1074 00:52:27,980 --> 00:52:28,970 >> ΜΑΘΗΤΗ: Α και C; 1075 00:52:28,970 --> 00:52:31,930 >> ΚΑΘΗΓΗΤΗΣ: Έτσι, ένα είναι δικαίωμα για την πρώτη. 1076 00:52:31,930 --> 00:52:34,385 Έτσι είμαστε d αναφορά σ του ένα, σωστά; 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 Ρ ενός σημεία για ένα, έτσι ξέρουμε ότι Αυτό πρόκειται να είναι 100 φορές μεγαλύτερο από αυτό; 1079 00:52:42,870 --> 00:52:46,232 Times τι κάνει το σημείο pc με; 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 Σημεία με ένα. 1082 00:52:48,740 --> 00:52:55,038 Έτσι 100 φορές 100 είναι 10.000. 1083 00:52:55,038 --> 00:52:56,170 Μήπως αυτό έχει νόημα; 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 Αρχική τέντωμα, παιδιά, τελευταία σειρά. 1087 00:53:00,500 --> 00:53:01,190 ΟΚ. 1088 00:53:01,190 --> 00:53:02,160 Τι αλλάζει εδώ; 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> ΜΑΘΗΤΗ: Α 1091 00:53:06,935 --> 00:53:09,435 ΚΑΘΗΓΗΤΗΣ: Α Τέλεια, έτσι ό, τι άλλο μπορεί να παραμείνει το ίδιο. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 ΟΚ. 1094 00:53:16,710 --> 00:53:17,970 Και τι είναι; 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 Έτσι είναι μια στιγμή τι; 1097 00:53:26,060 --> 00:53:27,120 Αυτό είναι pb αστέρων. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 Έτσι PB αστέρι σημαίνει εδώ PB, Pb σημεία να b. 1100 00:53:34,490 --> 00:53:35,370 >> Φοιτητής: 500. 1101 00:53:35,370 --> 00:53:36,230 >> ΚΑΘΗΓΗΤΗΣ: 500. 1102 00:53:36,230 --> 00:53:39,236 Έτσι έχουμε 500 φορές 100. 1103 00:53:39,236 --> 00:53:41,758 Αυτό είναι 50.000. 1104 00:53:41,758 --> 00:53:43,216 Μπά! 1105 00:53:43,216 --> 00:53:45,646 Κοίτα αυτό. 1106 00:53:45,646 --> 00:53:47,982 >> Φοιτητής: Γιατί έχουμε ο & γ για την last-- 1107 00:53:47,982 --> 00:53:48,690 ΚΑΘΗΓΗΤΗΣ: Συγγνώμη. 1108 00:53:48,690 --> 00:53:50,080 Φοιτητής: Ω, εντάξει. 1109 00:53:50,080 --> 00:53:51,600 ΚΑΘΗΓΗΤΗΣ: κακή μου. 1110 00:53:51,600 --> 00:53:52,890 Πολλά γραφής. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 Όλοι καλό; 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 Δεν είναι πάρα πολύ κακό, σωστά; 1115 00:53:56,660 --> 00:53:58,490 Απλά χρειάζεται λίγο ενώ για να λειτουργήσει μέσα. 1116 00:53:58,490 --> 00:54:01,080 Αν το σπάσει, καταλάβετε τι κάθε τμήμα 1117 00:54:01,080 --> 00:54:03,197 αναφέρεται ως to-- με ό, τι είναι, 1118 00:54:03,197 --> 00:54:05,780 yes-- το σπάσει στο μικρό προβλήματα και στη συνέχεια ανασυνδυάζονται, 1119 00:54:05,780 --> 00:54:07,345 και μπορείτε να κάνετε μερικά τρομερά πράγματα. 1120 00:54:07,345 --> 00:54:08,970 Υπάρχουν οι απαντήσεις, αλλά το κάναμε αυτό. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 Δείκτης αριθμητικής. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 Αχ. 1125 00:54:14,460 --> 00:54:15,510 Τα χέρια μου είναι όλα αλευρώδη. 1126 00:54:15,510 --> 00:54:17,970 Έτσι, προσθέτοντας ή αφαιρώντας int προσαρμόζει το δείκτη 1127 00:54:17,970 --> 00:54:21,890 από το μέγεθος του τύπου του δείκτη. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 Θυμηθείτε πως κάθε τύπου έχει διαφορετικό μέγεθος; 1130 00:54:28,390 --> 00:54:34,890 Έτσι, όπως ένα διπλό ή ένα μακρύ καιρό είναι οκτώ και int είναι τέσσερις, αλλά char είναι ένα. 1131 00:54:34,890 --> 00:54:38,360 >> Έτσι, ό, τι θέλετε να κάνετε is-- ένα πράγμα που πρέπει να θυμάστε 1132 00:54:38,360 --> 00:54:44,080 είναι ακριβώς ότι το πόσο σας τιμή δείκτη στην πραγματικότητα αλλάζει 1133 00:54:44,080 --> 00:54:46,550 θα εξαρτηθεί από την τύπος του δείκτη είναι. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 Όλοι καλό με αυτό; 1136 00:54:51,820 --> 00:54:52,760 Μπορώ να το διαγράψετε; 1137 00:54:52,760 --> 00:54:53,440 Είμαστε καλά; 1138 00:54:53,440 --> 00:54:53,940 Awesome. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> Έτσι, αν έχουμε κάποια δείκτη that-- αυτό πρόκειται να be-- είμαι 1141 00:55:07,501 --> 00:55:08,834 πρόκειται να είναι ένας δείκτης int κάνουν. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 Αποθηκεύει αυτό. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 Αν ήταν να πω δείκτη συν ένα, τι πρόκειται να κάνουμε 1146 00:55:20,170 --> 00:55:23,420 είναι ότι πρόκειται για την ενημέρωση αυτό από το μέγεθος ενός int 1147 00:55:23,420 --> 00:55:25,950 γιατί αυτό είναι το τύπος του δείκτη είναι. 1148 00:55:25,950 --> 00:55:28,260 >> Με C, τα πάντα είναι πολύ αυστηρή και οργανωμένη. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 Ο δείκτης int πρόκειται να ενημερωθεί από το ποσό του χώρου ένας int θα λάβουν. 1151 00:55:35,260 --> 00:55:36,260 Ένας int είναι τέσσερα byte. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> Λοιπόν, τι θα ήταν αυτό να μετατραπεί σε? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 Είσαι απλά προσθέτοντας τέσσερις σε αυτό. 1156 00:55:44,390 --> 00:55:50,040 Τώρα το δείκτη σας θα be-- ΟΚ. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> Έτσι, αν ήταν μια χαρα και κάναμε δείκτη συν ένα, ποιο θα ήταν αυτό τώρα; 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 Αν started-- προσποιείται εμείς started-- αυτή τη στιγμή είναι 0x08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 Ας πούμε τώρα ότι αυτό ήταν ένα char δείκτη, και προσθέσαμε ένα. 1163 00:56:10,850 --> 00:56:11,850 Τι θα αλλάξει στην; 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 Πόσα bytes είναι μια χαρα; 1166 00:56:16,030 --> 00:56:16,680 >> ΚΟΙΝΟ: Ένα. 1167 00:56:16,680 --> 00:56:17,304 >> ΟΜΙΛΗΤΗΣ 1: Ένα. 1168 00:56:17,304 --> 00:56:18,309 ΚΟΙΝΟ: Έτσι 0x09. 1169 00:56:18,309 --> 00:56:19,600 ΟΜΙΛΗΤΗΣ 1: Έτσι θα είναι εννέα. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 Έτσι απλά κάτι για να θυμόμαστε. 1172 00:56:23,820 --> 00:56:28,340 Απλά, όταν προσθέτετε ένα, δεν είναι προσθέτοντας ένα εκτός αν είναι μια χαρα. 1173 00:56:28,340 --> 00:56:34,190 Είναι προσθέτοντας πόσες bytes τον τύπο που είναι, 1174 00:56:34,190 --> 00:56:36,960 η οποία είναι ο λόγος που έχουμε Αυτή η εξίσωση μέχρι εδώ. 1175 00:56:36,960 --> 00:56:40,190 Έτσι είναι int φορές το μέγεθος του τύπου του δείκτη. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> Έτσι, έχουμε το παράδειγμα εδώ. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 y ανατέθηκε σε αυτή την τιμή, 0x4, όταν κάναμε y συν ισούται με ένα. 1180 00:56:54,430 --> 00:56:56,830 Τι σημαίνει αυτό, τι είναι στο x, δεν αλλάζει. 1181 00:56:56,830 --> 00:56:58,610 Τι σημαίνει η αλλαγή είναι αυτό που είναι στην ομάδα. 1182 00:56:58,610 --> 00:57:04,980 Η διεύθυνση αποθηκεύεται σε y ενημερώθηκε από τέσσερις επειδή υπάρχουν τέσσερα bytes σε int 1183 00:57:04,980 --> 00:57:06,097 και αυτό είναι ένα δείκτη int. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> Εντάξει. 1186 00:57:07,790 --> 00:57:09,123 Έτσι τώρα έχουμε μια άλλη άσκηση. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 Έτσι, το ερώτημα είναι τι θα εκτυπώσετε. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 Οποιεσδήποτε ιδέες; 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> ΚΟΙΝΟ: Ο αριθμός των χαρακτήρες ευτυχισμένη γάτα; 1193 00:57:43,699 --> 00:57:44,490 ΟΜΙΛΗΤΗΣ 1: Ακριβώς. 1194 00:57:44,490 --> 00:57:45,531 Έτσι, όπως με κορδόνι σας. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 Μήπως ο καθένας να πάρει αυτό; 1197 00:57:48,260 --> 00:57:49,509 Θέλουμε να περπατήσετε μέσα από αυτό; 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> Ναι, εντάξει. 1200 00:57:52,010 --> 00:57:57,385 Έτσι, αυτό που έχουμε here-- μου όπως αυτό τόσο πολύ περισσότερα. 1201 00:57:57,385 --> 00:57:59,340 Δεν έχω να [Δεν ακούγεται] γελοία. 1202 00:57:59,340 --> 00:58:01,690 >> Έτσι έχουμε εγχόρδων μας εδώ, ευτυχισμένη γάτα. 1203 00:58:01,690 --> 00:58:02,950 Υπέροχο. 1204 00:58:02,950 --> 00:58:05,080 Έχουμε κάποιο μετρητή που Κρατάμε κομμάτι της. 1205 00:58:05,080 --> 00:58:11,430 Έτσι έχουμε κάποια char * δείκτη ότι ακριβώς έχει οριστεί ίση με Str. 1206 00:58:11,430 --> 00:58:14,320 Αυτό που κάνει είναι ότι είναι εκχώρηση κάποιο δείκτη 1207 00:58:14,320 --> 00:58:16,380 στην αρχή της συμβολοσειράς σας. 1208 00:58:16,380 --> 00:58:19,840 Επειδή είμαι βέβαιος ότι, όπως αναφέρθηκε στην ομιλία, 1209 00:58:19,840 --> 00:58:22,290 σας έχω δώσει ρε παιδιά αυτό τύπος δεδομένων που ονομάζεται χορδή. 1210 00:58:22,290 --> 00:58:29,070 >> Αλλά πραγματικά χορδές είναι ακριβώς μια σειρά of-- σαν char *. 1211 00:58:29,070 --> 00:58:32,330 Είναι ένας δείκτης σε ένα μάτσο χαρακτήρες που είναι συνεχόμενα στη μνήμη. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 Έτσι, αυτό θέτει ακριβώς ίση με οποιαδήποτε συμβολοσειρά είναι 1214 00:58:36,280 --> 00:58:38,980 που προσδιορίζονται από όπου πρώτος χαρακτήρας του είναι. 1215 00:58:38,980 --> 00:58:42,710 Έτσι, αυτό είναι ακριβώς ρύθμιση κάποιο σημείο ίση με την αρχή της στοιχειοσειράς. 1216 00:58:42,710 --> 00:58:44,130 Όλοι καλά εκεί; 1217 00:58:44,130 --> 00:58:44,960 Cool. 1218 00:58:44,960 --> 00:58:49,840 >> Έτσι, αυτό είναι η εύρεση τιμών δείκτη μας. 1219 00:58:49,840 --> 00:58:53,760 Έτσι είναι πραγματικά πρόκειται να να μας δώσει κάποια αξία εδώ, 1220 00:58:53,760 --> 00:58:55,610 το κορδόνι μας που μιλάμε. 1221 00:58:55,610 --> 00:58:58,342 Και λέμε όσο δεν είναι μηδενική τερματισμού. 1222 00:58:58,342 --> 00:59:00,550 Έτσι συνεχίστε μέχρι να φτάσετε στο τέλος του κορδονιού. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 Ενημερώστε το δείκτη σας από ένα. 1225 00:59:04,190 --> 00:59:09,250 Έτσι, r, θα ενημερώσει πραγματικότητα από ένα κάθε χρόνο, επειδή αυτό είναι μια χαρα, 1226 00:59:09,250 --> 00:59:09,820 το char *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> Έτσι, πρόκειται να περάσουν. 1229 00:59:12,340 --> 00:59:13,290 Πρόκειται να ενημερώσετε. 1230 00:59:13,290 --> 00:59:16,705 Έτσι, την πρώτη φορά που αυτό τρέχει, πρόκειται να είναι εδώ σε ώρα. 1231 00:59:16,705 --> 00:59:17,590 Πρόκειται να ενημερώσετε. 1232 00:59:17,590 --> 00:59:18,185 >> Θα είναι ένα ένα. 1233 00:59:18,185 --> 00:59:21,310 Θα είναι ένα ρ, γ, και ούτω καθεξής και ούτω καθεξής. 1234 00:59:21,310 --> 00:59:22,300 Θα ενημερώσετε μετρητή. 1235 00:59:22,300 --> 00:59:26,160 Όταν φτάσει στο τέλος της, απλά εκτυπώνει πόσο μακριά έχει πάρει. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 Ναι. 1238 00:59:28,050 --> 00:59:31,475 >> ΚΟΙΝΟ: Έτσι Μετράει ο χώρος ως ένα, σωστά; 1239 00:59:31,475 --> 00:59:31,974 ΟΚ. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> ΟΜΙΛΗΤΗΣ 1: Σκεφτείτε έτσι. 1242 00:59:35,222 --> 00:59:36,830 Είναι ότι ένα question-- 1243 00:59:36,830 --> 00:59:37,746 >> ΚΟΙΝΟ: [δεν ακούγεται]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> ΟΜΙΛΗΤΗΣ 1: Δεν ανησυχεί. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 Αυτό το κάνω αυτό. 1248 00:59:42,736 --> 00:59:47,710 Εντάξει, έτσι ένα πράγμα καταλάβουμε είναι ότι με μια σειρά, 1249 00:59:47,710 --> 00:59:51,736 μπορείτε επίσης να την αντιμετωπίσουμε ως μια δείκτη επειδή συστοιχίες είναι ακριβώς 1250 00:59:51,736 --> 00:59:52,860 συνεχείς κηλίδες της μνήμης. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> Έτσι, μπορείτε να την αντιμετωπίσουμε με τον ίδιο τρόπο. 1253 00:59:56,380 --> 00:59:59,000 Μπορείτε να τους χειραγωγήσουν με δείκτες, πάρα πολύ. 1254 00:59:59,000 --> 01:00:04,770 Έτσι, αντί να κάνουμε, σε αυτό το περίπτωση, η ανάλογη πράγμα 1255 01:00:04,770 --> 01:00:07,490 θα είναι συστοιχία 0 ισούται με 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> Αλλά με τον ίδιο τρόπο ότι ένα string προσδιορίζεται 1258 01:00:15,210 --> 01:00:18,740 από την έναρξη της όπου πρώτος χαρακτήρας του είναι, 1259 01:00:18,740 --> 01:00:22,270 μια συστοιχία προσδιορίζεται από όπου το πρώτο στοιχείο του είναι. 1260 01:00:22,270 --> 01:00:25,120 Επειδή γνωρίζουμε, είμαστε εγγυημένη, ότι αυτά 1261 01:00:25,120 --> 01:00:27,985 πρόκειται να είναι συνεχής μπλοκ της μνήμης. 1262 01:00:27,985 --> 01:00:29,360 Αυτό είναι που μας επιτρέπει να το κάνουμε αυτό. 1263 01:00:29,360 --> 01:00:31,193 Ξέρουμε ότι είναι συνεχής μπλοκ της μνήμης. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> Έτσι, στην περίπτωση αυτή, με την εύρεση τιμών μόνο συστοιχία, η οποία μας λέει, 1266 01:00:36,500 --> 01:00:40,800 Εντάξει, πάμε για την έναρξη του σειρά σας, η οποία είναι εδώ. 1267 01:00:40,800 --> 01:00:42,640 Έτσι, μπορείτε να το ρυθμίσετε ίση με ένα. 1268 01:00:42,640 --> 01:00:48,610 Και σε αυτή την περίπτωση, ανεξάρτητα από σειρά σας τύπος είναι, όταν μπορείτε να το ενημερώσετε με ένα, 1269 01:00:48,610 --> 01:00:50,830 ότι είναι ακριβώς όπως την ενημέρωση στο επόμενο δείκτη. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 Μπορείτε να το κάνετε αυτό, επειδή σας ξέρετε τι είναι στην σειρά σας. 1272 01:00:56,360 --> 01:00:59,770 Έτσι ξέρει πόσο να ενημερώσετε το δείκτη σας, 1273 01:00:59,770 --> 01:01:02,925 ποια διεύθυνση να είναι σε τόσο ενημέρωση ότι είστε στην επόμενη υποδοχή. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> Έτσι, αυτό είναι απλώς ένα διαφορετικό τρόπο της γραφής συστοιχία 0 ισούται με 1, 1276 01:01:09,400 --> 01:01:15,114 συστοιχία 1 ισούται με 2, συστοιχία βραχίονα 2 ισούται με 3. 1277 01:01:15,114 --> 01:01:16,780 Είναι απλά ένας άλλος τρόπος για να το σκεφτώ. 1278 01:01:16,780 --> 01:01:19,600 Επειδή είναι συνεχής μπλοκ στη μνήμη, 1279 01:01:19,600 --> 01:01:21,830 μπορείτε να ανατρέξετε σε αυτά, είτε από τη συστοιχία notation-- 1280 01:01:21,830 --> 01:01:24,390 το οποίο εγώ προσωπικά βρείτε easier-- αλλά ίσως 1281 01:01:24,390 --> 01:01:27,347 θα πρέπει να το χειριστούν αυστηρά από τις διευθύνσεις μνήμης. 1282 01:01:27,347 --> 01:01:28,930 Και αυτός είναι ο τρόπος που θα το κάνουμε αυτό. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 Είδος περισσότερο σαν ένα δροσερό πράγμα που θα μπορούσατε να κάνετε 1285 01:01:32,630 --> 01:01:35,213 έναντι ίσως δεν είναι κάτι είστε στην πραγματικότητα πρόκειται για την εφαρμογή της. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> Μπορώ να το χρησιμοποιήσω σε 61. 1288 01:01:38,630 --> 01:01:41,710 Εσείς μάλλον δεν χρειάζεται να ανησυχείτε γι 'αυτό πάρα πολύ. 1289 01:01:41,710 --> 01:01:43,693 Αλλά αν σας ενδιαφέρει, λαμβάνουν 61 το επόμενο έτος. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 Είμαστε στα παιδιά τέντωμα στο σπίτι. 1292 01:01:46,560 --> 01:01:47,510 Ξέρω, είναι μακρά. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 Δυναμική Μνήμη Allocation-- οπότε γνωρίζουμε ότι μια 1295 01:01:58,880 --> 01:02:01,790 πράγματα όταν μιλήσαμε κατά τη διάρκεια της πρώτη μας ενότητα μαζί, 1296 01:02:01,790 --> 01:02:04,560 κοιτάξαμε σε μια συμφωνία ανταλλαγής λειτουργία, όπου ήταν 1297 01:02:04,560 --> 01:02:08,010 εκτός του πεδίου κύρια λειτουργία μας. 1298 01:02:08,010 --> 01:02:14,370 Και ήμασταν περνώντας σε αυτές τις τιμές ότι ήταν αποτελεσματικά αντίγραφα. 1299 01:02:14,370 --> 01:02:20,570 >> Και μόλις τελειώσει ανταλλαγής εκτέλεσης, μόλις άφησε ένα σωρό. 1300 01:02:20,570 --> 01:02:22,830 Θυμηθείτε, έχουμε ένα στοίβα πλαίσιο για swap. 1301 01:02:22,830 --> 01:02:26,070 Αφήνει και εκείνων τιμές αφήσει με αυτό. 1302 01:02:26,070 --> 01:02:27,050 Και είχαν φύγει. 1303 01:02:27,050 --> 01:02:28,615 Εμείς δεν μπορούσαμε να κάνουμε τίποτα μαζί τους και ήμασταν λυπημένοι 1304 01:02:28,615 --> 01:02:29,989 γιατί δεν μπορούμε να ανταλλάξουν τις αξίες μας. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> Αλλά με C, όπως ανέφερα, σας έχουν πολλή δύναμη πάνω από τη μνήμη. 1307 01:02:36,560 --> 01:02:43,310 Έτσι τι μπορείτε να κάνετε είναι να μπορείτε να κατανέμουν τα πράγματα στο σωρό εδώ 1308 01:02:43,310 --> 01:02:46,830 ότι θα μείνουν εκεί μέχρι να τους πω αλλιώς. 1309 01:02:46,830 --> 01:02:48,280 >> Είναι σαν καλά παιδιά. 1310 01:02:48,280 --> 01:02:49,150 Θα μείνουν εκεί. 1311 01:02:49,150 --> 01:02:50,270 Δεν αφήνουν. 1312 01:02:50,270 --> 01:02:52,750 Θα μείνουν εκεί μέχρι να είστε όπως, εντάξει, μπορείτε να πάτε μακριά. 1313 01:02:52,750 --> 01:02:55,920 >> Εκτιμώντας τα πράγματα στη στοίβα, who-- είναι σαν άτακτα παιδιά. 1314 01:02:55,920 --> 01:02:59,160 Θα τρέξει μόνο μακριά όταν θέλετε να είναι εκεί και, στη συνέχεια, από όπου και αν πάει. 1315 01:02:59,160 --> 01:03:00,160 Δεν μπορείτε να τους πάρει πίσω. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> Έτσι ο σωρός is-- θα πάμε να μιλάμε για malloc και δωρεάν, η οποία 1318 01:03:07,187 --> 01:03:08,895 Είμαι βέβαιος ότι εσείς ακούσει για το διάλεξη. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 Και αυτό είναι βασικά ένας τρόπος να έχουν πολύ επίμονη δεδομένα. 1321 01:03:14,210 --> 01:03:18,920 Έτσι, μπορείτε να κρατήσετε τα δεδομένα γύρω από όσο θέλετε. 1322 01:03:18,920 --> 01:03:19,546 Mhm. 1323 01:03:19,546 --> 01:03:21,475 >> ΚΟΙΝΟ: Μπορείτε να ορίσετε σωρού και στοίβα; 1324 01:03:21,475 --> 01:03:24,030 Είναι αυτοί που τους αρέσουν τα μέρη για να βάλει τα πράγματα; 1325 01:03:24,030 --> 01:03:26,630 >> ΟΜΙΛΗΤΗΣ 1: Έτσι είναι βασικά just-- ότι είναι 1326 01:03:26,630 --> 01:03:29,530 ο τρόπος αναφερόμαστε μόνο στη μνήμη. 1327 01:03:29,530 --> 01:03:37,300 Έτσι σωρός είναι απλά τοποθετεί όπου μνήμη κατανέμεται δυναμικά, 1328 01:03:37,300 --> 01:03:40,960 λαμβάνοντας υπόψη ότι η στοίβα αναφέρεται περισσότερο για να στοιβάξετε τα πλαίσια 1329 01:03:40,960 --> 01:03:45,950 που είναι πιο κεντρική σημασία για το λειτουργίες που εκτελούνται στην πραγματικότητα. 1330 01:03:45,950 --> 01:03:47,200 Δεν έχετε πραγματικά τον έλεγχο. 1331 01:03:47,200 --> 01:03:50,690 >> Η μεγάλη διαφορά, έχετε τον έλεγχο πάνω από το σωρό, αν θέλετε να. 1332 01:03:50,690 --> 01:03:52,710 Έχετε λιγότερο έλεγχο πάνω στη στοίβα. 1333 01:03:52,710 --> 01:03:55,030 Η στοίβα εξαρτάται από το λειτουργίες που εκτελούνται, 1334 01:03:55,030 --> 01:03:58,320 και η σειρά με την οποία είναι τρέχει, και πώς τα πράγματα επιστρέφονται. 1335 01:03:58,320 --> 01:04:01,290 Ότι, με το σωρό, όπως Θα δούμε, μπορείτε να πείτε, 1336 01:04:01,290 --> 01:04:06,639 Εντάξει, θέλω αυτή η τιμή να είναι περίπου μέχρι να σας πω αλλιώς. 1337 01:04:06,639 --> 01:04:08,180 Δεν επιτρέπεται να απαλλαγούμε από αυτό. 1338 01:04:08,180 --> 01:04:09,300 Δεν σας επιτρέπεται να το παρακάμψετε. 1339 01:04:09,300 --> 01:04:11,675 Θα πάμε για να το κρατήσει γύρω για όσο μπορώ να σας πω. 1340 01:04:11,675 --> 01:04:15,780 Μπορείτε να πάρετε να είναι το αφεντικό στο σωρό, ενώ η stack-- ίσως αν 1341 01:04:15,780 --> 01:04:18,080 όπως απατώ επιτήδεια το δρόμο σας μπορείτε να είστε το αφεντικό. 1342 01:04:18,080 --> 01:04:19,340 Αλλά δεν είναι αρκετά. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 Και είναι πραγματικά ακριβώς τη μνήμη. 1345 01:04:22,070 --> 01:04:24,260 Είναι απλά διαφορετικούς τρόπους του αναφερόμενος στην μνήμη. 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 Έτσι, με αυτό, πώς να ελέγχει τη μνήμη σας. 1349 01:04:28,630 --> 01:04:32,070 Είναι με malloc, η οποία εσείς πρόκειται να πάρετε για να χρησιμοποιήσετε. 1350 01:04:32,070 --> 01:04:37,100 Έτσι είναι ακριβώς απότομα για την κατανομή της μνήμης. 1351 01:04:37,100 --> 01:04:38,459 Αυτό είναι όλο. 1352 01:04:38,459 --> 01:04:41,250 Υπάρχει ένα σωρό άλλα δροσερά λειτουργίες που έχουν alloc στο τέλος, 1353 01:04:41,250 --> 01:04:42,750 και στέκονται για διαφορετικά πράγματα. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> Έτσι, όταν χρειάζεστε αποθήκευσης που χρειάζεται να ξεπεράσει την τρέχουσα λειτουργία σας έτσι 1356 01:04:49,050 --> 01:04:51,010 ότι όταν το ρεύμα σας λειτουργία τρέχει μακριά, 1357 01:04:51,010 --> 01:04:55,774 έχετε ακόμα τα δεδομένα που πήρε από αυτό, θέλετε να χρησιμοποιήσετε malloc. 1358 01:04:55,774 --> 01:04:57,190 Αυτό θα γίνει η προετοιμασία για το σωρό. 1359 01:04:57,190 --> 01:05:00,140 Και όπως είπα και κρατήστε λένε, θα το κρατήσει εκεί 1360 01:05:00,140 --> 01:05:03,050 μέχρι να το πω αλλιώς, το οποίο είναι το σημαντικό πράγμα εδώ. 1361 01:05:03,050 --> 01:05:08,450 >> Έτσι, ένα πράγμα που πρέπει να παρατηρήσετε, και αυτό είναι συνήθως πολύ σημαντικό, 1362 01:05:08,450 --> 01:05:13,620 είναι ότι αυτό sizeof Είναι εξαιρετικά χρήσιμο να χρησιμοποιήσετε 1363 01:05:13,620 --> 01:05:16,440 επειδή ανάλογα με τον τύπο της μηχανής τρέχετε, 1364 01:05:16,440 --> 01:05:22,470 μπορεί να έχει ποικίλες ποσότητες της μνήμης που χρειάζεται. 1365 01:05:22,470 --> 01:05:26,870 Έτσι, μπορείτε πάντα θέλουν να χρησιμοποιήσουν το μέγεθος του έτσι ότι δεν είσαι μηχανή εξαρτάται, 1366 01:05:26,870 --> 01:05:30,300 έτσι ώστε ο κωδικός σας θα τρέξει σε οποιοδήποτε μηχάνημα. 1367 01:05:30,300 --> 01:05:32,360 >> Και αυτό είναι μόνο μέρος της γραφής καλό κώδικα. 1368 01:05:32,360 --> 01:05:34,610 Εάν λειτουργεί σε μια μηχανή, αλλά όχι οποιοδήποτε από τα άλλα, 1369 01:05:34,610 --> 01:05:36,440 πόσο χρήσιμο ήταν το πρόγραμμά σας; 1370 01:05:36,440 --> 01:05:38,420 Έτσι, θέλετε πάντα να βεβαιωθείτε ότι και να χρησιμοποιήσετε το sizeof. 1371 01:05:38,420 --> 01:05:41,306 >> ΚΟΙΝΟ: Έτσι είναι ότι, όπως η μέγεθος 10 ίντσες [δεν ακούγεται]; 1372 01:05:41,306 --> 01:05:43,698 >> ΟΜΙΛΗΤΗΣ 1: Αυτό είναι το μέγεθος των 10 ints. 1373 01:05:43,698 --> 01:05:44,197 ναι. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 Έτσι, το μέγεθος των ints θα επιστρέψει πόσο κάνει ένα int πάρει. 1376 01:05:48,830 --> 01:05:51,530 Ή το μέγεθος του char, πώς κοστίζει ένα λάβουν ΧΑΡ. 1377 01:05:51,530 --> 01:05:54,150 Και τότε πόσα blocks του ότι θέλεις; 1378 01:05:54,150 --> 01:05:57,590 >> Έτσι, στην περίπτωση αυτή, θέλουμε κάτι ότι μπορούμε να αποθηκεύσουμε 10 ints να. 1379 01:05:57,590 --> 01:06:00,240 Και αυτό θα λειτουργήσει ανεξάρτητα του μηχανήματος, το οποίο είναι δροσερό. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 Πόσα bytes Έτσι θα που πραγματικά σας δίνουν; 1382 01:06:04,846 --> 01:06:06,190 Γρήγορη μαθηματικά. 1383 01:06:06,190 --> 01:06:06,787 >> ΚΟΙΝΟ: 40. 1384 01:06:06,787 --> 01:06:07,370 ΟΜΙΛΗΤΗΣ 1: 40. 1385 01:06:07,370 --> 01:06:07,869 Ακριβώς. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 Έτσι, ένα άλλο μεγάλο πράγμα. 1388 01:06:12,030 --> 01:06:14,840 Pointer ή malloc μπορεί να επιστρέψει null. 1389 01:06:14,840 --> 01:06:17,910 >> Έτσι και πάλι, πάντα να ελέγχετε δείτε αν επιστρέψει null 1390 01:06:17,910 --> 01:06:19,620 πριν να προσπαθήσετε και να κάνετε τίποτα με αυτό. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 Αν προσπαθήσετε και dereference Αυτός ο δείκτης τώρα, 1393 01:06:27,350 --> 01:06:29,720 είναι ακριβώς πρόκειται να segfault γιατί πήγε και προσπάθησε 1394 01:06:29,720 --> 01:06:31,730 να αγγίξει null όταν δεν θα πρέπει να έχουν. 1395 01:06:31,730 --> 01:06:34,000 Έτσι, ελέγχετε πάντα για μηδενική. 1396 01:06:34,000 --> 01:06:36,075 Και πάλι, το μόνο που έχετε να κάνετε. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> Θα μπορούσε να επιστρέψει null. 1399 01:06:39,720 --> 01:06:42,740 Θα επιστρέψει null αν είστε είτε εκτός του χώρου, ή για οποιονδήποτε λόγο 1400 01:06:42,740 --> 01:06:44,350 έτρεξε σε κάποιο σφάλμα μνήμης. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 Είναι μερικές φορές απλά επιστρέφει null. 1403 01:06:47,510 --> 01:06:48,990 Έτσι, απλά πρέπει να ελέγξετε για αυτό. 1404 01:06:48,990 --> 01:06:51,050 Αυτό είναι όλο αυτό το slide λέει. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 Και τότε αυτό που έχουμε εδώ είναι μια πρόσκληση για να ελευθερώσετε. 1407 01:06:55,240 --> 01:07:00,550 Έτσι, με τον ίδιο τρόπο που αν να ανοίξετε ένα αρχείο θα πρέπει να κλείσετε ένα αρχείο, 1408 01:07:00,550 --> 01:07:04,340 αν malloc μνήμης, μπορείτε πρέπει να ελευθερώσετε ότι η μνήμη. 1409 01:07:04,340 --> 01:07:06,530 Και εσείς θα πάρετε να κάνουν πραγματικά δροσερή ουσία. 1410 01:07:06,530 --> 01:07:09,624 >> Και υπάρχει ένα πρόγραμμα που μπορείτε να εκτελέσετε για να δείτε αν είστε ποτέ διαρροή μνήμης. 1411 01:07:09,624 --> 01:07:11,040 Αλλά δεν θέλετε να διαρρεύσει μνήμη. 1412 01:07:11,040 --> 01:07:11,820 Είναι πραγματικά κακό. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 Απλά χάλια τα πράγματα. 1415 01:07:15,020 --> 01:07:20,939 >> Είναι κακό να κάνουμε ακριβώς όπως τον προγραμματισμό σοφός για την αποτελεσματικότητα του σχεδιασμού. 1416 01:07:20,939 --> 01:07:22,980 Αλλά είναι επίσης ακριβώς το είδος κακή για τον υπολογιστή σας. 1417 01:07:22,980 --> 01:07:26,780 Έτσι απλά δωρεάν πράγματα όταν τους malloc. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> Εσείς βλέπετε τις συμμετρίες εδώ. 1420 01:07:30,210 --> 01:07:31,180 Σούπερ απλή. 1421 01:07:31,180 --> 01:07:33,010 Απλά δωρεάν και, στη συνέχεια, ανεξάρτητα από το δείκτη σας, 1422 01:07:33,010 --> 01:07:34,843 όποια και αν είναι η ονομασία της δείκτης σας είναι, και 1423 01:07:34,843 --> 01:07:36,710 θα φροντίσει για την απελευθέρωση για σας. 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 >> Τότε έχουμε αυτό. 1428 01:07:42,530 --> 01:07:44,770 Έτσι, είμαστε ακριβώς πρόκειται να με τα πόδια μέσα από αυτό το πρόγραμμα. 1429 01:07:44,770 --> 01:07:46,560 Και τότε εσείς κάνει. 1430 01:07:46,560 --> 01:07:50,240 >> Έτσι, [δεν ακούγεται] μόλις κύριο. 1431 01:07:50,240 --> 01:07:51,690 Έτσι έχουμε κάποια int * δείκτη. 1432 01:07:51,690 --> 01:07:53,648 Έτσι έχουμε ένα δείκτη ότι πρόκειται να κρατήσει ints. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 Και πόσα ints είναι αυτό πρόκειται να κρατήσει; 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 Μόνο ένα. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 Μέγεθος ενός int. 1439 01:08:01,100 --> 01:08:03,900 >> Ελέγχουμε να δούμε αν δείκτη είναι μηδενική, διότι 1440 01:08:03,900 --> 01:08:06,130 είναι, θέλουμε να πούμε δεν κάνουν τίποτα. 1441 01:08:06,130 --> 01:08:07,065 Είναι κακό. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 Γι 'αυτό και εκτυπώσετε κάποιο σφάλμα από τη μνήμη, τις περισσότερες φορές επιστρέφουν 1, 1444 01:08:12,130 --> 01:08:14,260 όπως εσείς συνηθίσει. 1445 01:08:14,260 --> 01:08:17,390 >> Και τότε έχουμε εδώ, εμείς dereference δείκτη μας. 1446 01:08:17,390 --> 01:08:22,840 Έτσι, αυτό σημαίνει ότι θα πάμε για να αποθηκεύσετε κάτι στη θέση που μας δόθηκαν. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 Int * δείκτη, ή malloc, επιστρέφει το διεύθυνση όπου αναιρέσει αυτό 1449 01:08:30,830 --> 01:08:31,750 μνήμη για εσάς. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 Έτσι είναι βασικά δίνοντάς σας like-- αν 1452 01:08:34,800 --> 01:08:38,149 σκεφτείτε ένα μάτσο σπίτια σε μια γειτονιά 1453 01:08:38,149 --> 01:08:40,640 ότι θέλετε να βάλετε σας έπιπλα, malloc 1454 01:08:40,640 --> 01:08:43,850 είναι σαν ΟΚ, μπορείτε να πάρετε να πάει στο σπίτι τριών. 1455 01:08:43,850 --> 01:08:45,800 Και αυτό σας το δίνει διεύθυνση του σπιτιού τρεις. 1456 01:08:45,800 --> 01:08:48,775 >> Έτσι αυτή τη στιγμή, αυτό δείκτης αποθηκεύει μια διεύθυνση, 1457 01:08:48,775 --> 01:08:50,149 αποθηκεύει τη διεύθυνση του σπιτιού σας. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * Ptr μέσα, εντάξει, είμαι στο σπίτι μου. 1460 01:08:54,640 --> 01:08:55,326 Cool. 1461 01:08:55,326 --> 01:08:56,580 Πρέπει να πάρετε κάποια ακέραιο. 1462 01:08:56,580 --> 01:08:59,229 >> Έτσι είστε ζητώντας κάποιον να σας δώσει τα έπιπλα τώρα. 1463 01:08:59,229 --> 01:09:00,430 Έτσι, μπορείτε να πάρετε κάποια int. 1464 01:09:00,430 --> 01:09:05,100 Και βάζει στο δείκτη σας όπου αυτό είναι δείχνοντας. 1465 01:09:05,100 --> 01:09:08,670 >> Και τότε ακριβώς εκτυπώσεις έξω, έχετε εισέλθει οπουδήποτε. 1466 01:09:08,670 --> 01:09:11,060 Και πάλι, η αναφορά. 1467 01:09:11,060 --> 01:09:15,649 Έτσι, αυτό είναι σαν να πήγε σε αυτό αντιμετώπιση και είδατε τι ήταν εκεί. 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 >> Και τότε φυσικά θα απελευθερώσει δείκτη μας. 1471 01:09:20,174 --> 01:09:21,590 Μην ξεχάσετε να ελευθερώσετε το δείκτη σας. 1472 01:09:21,590 --> 01:09:22,933 Μην ξεχάσετε να ελέγξετε για μηδενική. 1473 01:09:22,933 --> 01:09:24,349 Μην ξεχάσετε να ελευθερώσετε το δείκτη σας. 1474 01:09:24,349 --> 01:09:27,270 Έχετε δύο πράγματα που θυμάμαι από αυτό, ή ότι θα πρέπει να θυμάστε. 1475 01:09:27,270 --> 01:09:27,770 Ναι. 1476 01:09:27,770 --> 01:09:31,590 ΚΟΙΝΟ: [δεν ακούγεται] πράγματα όπως ότι, το char * s. 1477 01:09:31,590 --> 01:09:33,760 Πώς έρχονται δεν μπορούμε ποτέ ελευθερώσουν τους; 1478 01:09:33,760 --> 01:09:34,529 >> ΟΜΙΛΗΤΗΣ 1: Χμ; 1479 01:09:34,529 --> 01:09:36,450 >> ΚΟΙΝΟ: Είναι εκείνοι σαν χορδές; 1480 01:09:36,450 --> 01:09:39,160 Είπατε χορδές είναι ακριβώς όπως char * s, σωστά; 1481 01:09:39,160 --> 01:09:41,200 Γιατί λοιπόν να μην έχουμε απελευθερώσει χορδές; 1482 01:09:41,200 --> 01:09:43,204 >> ΟΜΙΛΗΤΗΣ 1: Μπορείτε μόνο να δωρεάν, αν είστε mallocing. 1483 01:09:43,204 --> 01:09:44,620 ΚΟΙΝΟ: Ω, αν είστε mallocing. 1484 01:09:44,620 --> 01:09:47,399 ΟΜΙΛΗΤΗΣ 1: Έτσι malloc και δωρεάν είναι δύο πράγματα 1485 01:09:47,399 --> 01:09:49,000 ότι θα πρέπει να έχετε πάντα μαζί. 1486 01:09:49,000 --> 01:09:51,630 στ ανοιχτά, στ κοντά, δύο πράγματα θα πρέπει να έχετε μαζί. 1487 01:09:51,630 --> 01:09:54,471 Σε αμφότερες τις περιπτώσεις, ελέγξτε για μηδενική. 1488 01:09:54,471 --> 01:09:54,971 Ναι. 1489 01:09:54,971 --> 01:09:57,130 >> ΚΟΙΝΟ: Έτσι είναι ελεύθερη μόνο επιτρέποντας κάτι άλλο 1490 01:09:57,130 --> 01:09:59,690 να αποθηκεύονται εκεί μετά Αυτό το πρόγραμμα έχει χρησιμοποιήσει; 1491 01:09:59,690 --> 01:10:01,946 >> ΟΜΙΛΗΤΗΣ 1: Είναι απλά λέγοντας, Εντάξει, είμαι γίνει με αυτό. 1492 01:10:01,946 --> 01:10:03,320 Δεν χρειάζεται να το κρατήσει περίπου. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 Διαφορετικά, ο υπολογιστής σας θα Ακριβώς όπως και να προσπαθήσουμε και να κρατήσει εκεί. 1495 01:10:08,190 --> 01:10:10,910 Και τότε θα can't-- τρέχει σε θέματα μνήμης αργότερα. 1496 01:10:10,910 --> 01:10:13,660 Μπορείτε πάντα να θέλουν να το ελευθερώσει, γιατί λέει ο υπολογιστής σας, εντάξει, είμαι 1497 01:10:13,660 --> 01:10:15,190 γίνεται με αυτό το σημείο της μνήμης. 1498 01:10:15,190 --> 01:10:17,190 Μπορείτε να το έχετε πίσω για μένα να χρησιμοποιήσετε αργότερα. 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 Ναι. 1502 01:10:21,320 --> 01:10:26,950 >> ΚΟΙΝΟ: Γι 'αυτό χρησιμοποιείται το% d μόνο επειδή ένα διπλό που έρχεται πίσω, 1503 01:10:26,950 --> 01:10:28,330 ή γιατί is-- [δεν ακούγεται]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> ΚΟΙΝΟ: Μπορείτε να χρησιμοποιήσετε το% i; 1506 01:10:31,620 --> 01:10:32,760 >> ΟΜΙΛΗΤΗΣ 1: Μπορείτε να χρησιμοποιήσετε το% i. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 Όλες οι τελευταίες ερωτήσεις λεπτό; 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 Προχωρήστε. 1511 01:10:38,985 --> 01:10:40,610 ΚΟΙΝΟ: Έχω μόνο μια γρήγορη ερώτηση. 1512 01:10:40,610 --> 01:10:50,200 Έτσι, η μεταβλητή ptr, that's-- όπως, με την int * ptr = malloc, 1513 01:10:50,200 --> 01:10:54,142 ότι είναι απλά λέγοντας ότι είναι δείχνουν προς μια θέση στην memory-- 1514 01:10:54,142 --> 01:10:55,600 ΟΜΙΛΗΤΗΣ 1: Θέλετε [δεν ακούγεται]; 1515 01:10:55,600 --> 01:10:58,050 ΚΟΙΝΟ: --that είναι η μέγεθος of-- όχι, δεν πειράζει. 1516 01:10:58,050 --> 01:11:01,292 Αλλά αυτό είναι ακριβώς που δείχνουν προς μια θέση στην μνήμη που είναι ακριβώς όπως τέσσερα bytes. 1517 01:11:01,292 --> 01:11:02,000 ΟΜΙΛΗΤΗΣ 1: Δεξιά. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 Έτσι malloc το μέγεθος του int λέει, Εντάξει, Πάω να πάει να τρέξει, 1520 01:11:07,070 --> 01:11:08,780 βρείτε τέσσερα bytes της μνήμης για σας. 1521 01:11:08,780 --> 01:11:10,700 Όταν διαπιστώσει ότι τέσσερις bytes της μνήμης που, 1522 01:11:10,700 --> 01:11:14,030 σας δίνει υποστηρίξει τη διεύθυνση από όπου ξεκινά, 1523 01:11:14,030 --> 01:11:16,160 και αυτό είναι που αποθηκεύονται στο δείκτη, ή PTR. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 Καλή. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 Εσείς φαίνονται λιγότερο σύγχυση από ό, τι οι περισσότεροι οι άνθρωποι, όταν μιλάω για το δείκτη, 1528 01:11:21,700 --> 01:11:23,670 έτσι αισθάνομαι πολύ καλά τώρα. 1529 01:11:23,670 --> 01:11:24,520 >> Εντάξει. 1530 01:11:24,520 --> 01:11:27,960 Όπως πάντα, εσείς θα πρέπει να έχουν όλοι πάρει βαθμούς pset2 σας από τώρα. 1531 01:11:27,960 --> 01:11:32,769 Ξέρω ότι υπήρξαν κάποια ξεχαρβαλωμένος τα πράγματα εκεί που λέει, τύπος δεν είναι έγκυρη 1532 01:11:32,769 --> 01:11:33,310 ή κάτι τέτοιο. 1533 01:11:33,310 --> 01:11:36,166 Εάν παίρνετε ότι, το σύνολο των οι βαθμοί σας είναι έγκυρη από την πλευρά μου. 1534 01:11:36,166 --> 01:11:38,040 Έτσι μπορώ να σας στείλω στιγμιότυπα των βαθμών σας. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 Απλά επιτρέψτε μου να ξέρω, καθώς και αν είστε λείπουν κάθε βαθμών ή κάτι 1537 01:11:41,760 --> 01:11:43,060 δεν φαίνεται να έχει νόημα. 1538 01:11:43,060 --> 01:11:43,720 Έλα σε μένα. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> Έχω πάει σούπερ περήφανοι για σένα παιδιά ήδη, έτσι ώστε να συμβαδίσει. 1541 01:11:48,830 --> 01:11:50,640 Και έχουν ένα καλό υπόλοιπο της εβδομάδας σας. 1542 01:11:50,640 --> 01:11:53,440 Είμαι σίγουρος ότι θα δούμε κάποια σας σε ώρες γραφείου. 1543 01:11:53,440 --> 01:11:55,414