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