ZAMYLA Chan: Γεια, σε όλους. Καλώς ήλθατε στο τμήμα. Σήμερα είναι ακριβώς πρόκειται να είναι όλα τα κουίζ επανεξετάσει για κουίζ σας την Τετάρτη. Ελπίζω ότι ο καθένας θυμάται ότι έχουν ένα κουίζ την Τετάρτη. Και αν δεν το έκανε, και, Τώρα έχετε υπενθύμισε. Έτσι, την Τετάρτη βεβαιωθείτε ότι έχετε δείξει μέχρι για την τάξη ή άλλα καταλύματα όπως αναγκαίο. Οι Εσείς πρόκειται να είναι φοβερό. Είναι πρόκειται να είναι μεγάλη. Και Πάω να κάνω ό, τι μπορώ για να σας βοηθήσει να προετοιμαστούν σήμερα για το κουίζ σας τώρα. Και, επίσης, σε περίπτωση που δεν γνωρίζετε, υπάρχει ένα ευρύ συνεδρία ανασκόπηση πορεία Σήμερα στις 7:00 στο Βορειοδυτικά εργαστήρια Β103 δωματίου. Μπορείτε να με δείτε και πάλι για ένα encore, όπως Θα οδηγήσει μέρος της εν λόγω συνόδου ανασκόπησης επίσης. Έτσι, αν δεν μπορείτε να πάρετε αρκετό από μένα τώρα, μπορείτε να έρθει και πάλι απόψε. Όλα τα δεξιά, έτσι ώστε πρώτα πράγματα πρώτα. Απλά μερικές συμβουλές κουίζ πριν πραγματικά βουτήξει στο για σχόλια. Έτσι, όπως και με κάθε εξέταση, πρακτική θα σας βοηθήσει σίγουρα. Υπάρχουν εξετάσεις από το παρελθόν έξι ή επτά χρόνια εκεί, έτσι ώστε να είναι μια πολλή πρακτική υλικό για σας παιδιά να έχουν. Και στην πραγματικότητα, σήμερα είναι πραγματικά μόνο πρόκειται να πηγαίνει πέρα ​​από τυχόν θέματα ότι εσείς έχετε ερωτήσεις σχετικά, καθώς και καθώς εργάζονται μέσα από τα προβλήματα πρακτικής από κουίζ μηδέν. Γι 'αυτό θα ρίξει μέχρι κουίζ μηδέν από πέρυσι εδώ, και μπορούμε να εργαστούμε μέσω οποιωνδήποτε προβλημάτων ότι εσείς θα θέλατε να. Έτσι εξάσκηση. Θα πάμε να αρχίσουν να κάνουν ότι σήμερα. Κωδικός σε χαρτί. Οπότε ναι, αν ο καθένας θα μπορούσε πραγματικά να βγούμε χαρτί, ότι θα είναι μεγάλη, γιατί δεν είσαι πρόκειται να έχετε τον υπολογιστή σας για το εξετάσεις και τη συγγραφή κώδικα με το χέρι είναι συχνά πολύ πιο δύσκολο από ό, τι μπορείτε να φανταστείτε. Έχετε συνηθίσει μόνο βλέποντας ότι και πληκτρολογώντας, και έχετε μεταγλωττιστή σας να να σας βοηθήσει όταν έχετε σφάλματα, αλλά δεν μπορείτε να πάρετε ότι για τις εξετάσεις. Γι 'αυτό είναι πολύ σημαντικό για πραγματικά να είναι σε θέση να γράψει τον κώδικα, και ότι η μνήμη των μυών του κάνει με το χέρι, θα σας βοηθήσει πραγματικά. Έτσι, παίρνουμε μια μικρή στενή. Είναι Δευτέρα. Εξετάσεις σας είναι την Τετάρτη. Αλλά εάν έχετε το χρόνο, σίγουρα να λάβει ένα τις εξετάσεις από πέρυσι ή το χρόνο πριν κάτω από το χρονικό περιορισμό από μία ώρα και μισή. Απλά νοκ-άουτ μια ώρα και ένα μισό του χρόνου, και να καθίσει κάτω τον εαυτό σου, και απλά να διατρέξει τα προβλήματα σαν να ήταν στην πραγματικότητα λαμβάνοντας αυτό, γιατί ένας από τα μεγαλύτερα πράγματα που ακούμε για τα κουίζ είναι ότι είναι πολύ μεγάλο. Είναι ένα πολύ υλικό. Υπάρχουν πολλές ερωτήσεις, και οι περισσότεροι άνθρωποι δεν μπορεί να τελειώσει. Ξέρω ότι συνολικά δεν τελείωσε κουίζ μου όταν πήρα την τάξη. Σε αυτό το σημείωμα, ως μια λιγότερο άνετο μέρος, καταλάβετε ότι το μάθημα αυτό σήμαινε να ληφθεί μέριμνα για τους ανθρώπους όλων των επιπέδων. Το σύνολο λόγος που έχουμε να σας χωρίσει λιγότερο άνετα, κάπου ανάμεσα, και πιο άνετη είναι η το είδος του να γίνει πιο δίκαιη. Και αν είναι λιγότερο άνετα, είναι Δεν είναι απαραίτητο per se για να πάρει τα πάντα. Όπως και αν είχαν πάρει τα πάντα, τότε σίγουρα να είναι στην πιο άνετη ενότητα. Έτσι, προφανώς δεν τον εαυτό σας χτύπησαν πάρα πολύ δύσκολο, αν δεν μπορείτε να ολοκληρώσετε τις εξετάσεις. Πάρτε το από μένα, εγώ δεν το κάνω. Είμαι ακόμα ένας συμπυκνωτής. Βοηθάω εξακολουθούν να διδάσκουν το μάθημα. Θα είναι μια χαρά. Εντάξει. Και, τέλος, να πάρετε κάποια ύπνο. Προφανώς με οποιονδήποτε εξετάσεις λέμε πάντα αυτό. Εσπευσμένο το βράδυ πριν και να μην πάρει τον ύπνο του κάνει not-- ίσως αν αυτό δουλεύει για εσάς, πάμε για αυτό. Αλλά για τη συντριπτική πλειοψηφία των οι άνθρωποι, να πάρει κάποιο ύπνο, αφήνοντας υπόλοιπο του εγκεφάλου σας και να ανακτήσει πριν έρχονται για τις εξετάσεις θα σας βοηθήσει πραγματικά. Επίσης θα υπάρχει σχεδόν σίγουρα είναι καραμέλα σε εξετάσεις, έτσι θα πρέπει να προσβλέπουμε σε. Οι Εσείς πρόκειται να κάνει μεγάλη. Είναι πρόκειται να είναι μια χαρά. Και τώρα στην επόμενη ώρα και ένα μισό μου Θα προσπαθήσουμε και να σας prep όσο καλύτερα μπορώ. Έτσι έχω διαφάνειες από βασικά όλα τα τμήματα μέχρι τώρα. Είμαι δεν πρόκειται να περάσουν από όλα αυτά, επειδή αυτό δεν είναι εφικτό σε μία ώρα και ένα μισό, καθώς και καθώς εργάζονται μέσα από τα προβλήματα πρακτικής. Έτσι, αντί να έχω μια λίστα θεμάτων. Αυτά είναι όλα τα πράγματα ότι θα μπορούσαμε να σας κουίζ σχετικά. Αν υπάρχει κάτι ότι πραγματικά άλματα έξω ότι θέλετε να πάει πάνω, ώστε να θέλω να πάω πάνω από εννοιολογικά, Μπορώ να προσπαθήσω και να δώσει σας μια επισκόπηση εκεί. Ή αν θέλετε να ξεκινήσετε αμέσως να κάνει προβλήματα πρακτική μαζί, μπορούμε να το κάνουμε αυτό. Είναι στο χέρι σας παιδιά. Δεν υπάρχουν ότι πολλά από εσάς. Γι 'αυτό είναι ό, τι εσείς θέλετε να κάνετε. Θέλω να είναι το πιο χρήσιμες προς το μέρος σας παιδιά. Έτσι, εγώ θα σας αφήσει να εξετάσουμε μόνο. ΚΟΙΝΟ: Ένα πράγμα είναι το διάγραμμα που κρατάμε λέγοντας για το σωρό και το σωρό. Απλά η όλη ιδέα πίσω ότι και ό, τι αυτό σημαίνει. ZAMYLA Chan: Ναι, εντάξει. Αυτό είναι όλο το δρόμο κατά τη τέλος, οπότε επιτρέψτε μου να μετακινηθείτε μέσα. ΚΟΙΝΟ: Δεν χρειάζεται να το κάνουμε τώρα, αλλά οτιδήποτε άλλο. ZAMYLA Chan: Ήταν εκεί anything-- αυτό το ένα. Είναι αυτό το είδος της ασαφούς για τους ανθρώπους; ΚΟΙΝΟ: Ναι, έχω το δεύτερο αυτό. Και μπορούμε επίσης να κάνουμε υπερχείλιση του buffer; ZAMYLA Chan: Υπερχείλιση; ΟΚ. Έτσι υπερχείλιση μνήμης είναι αρκετά εύκολο απλά να μιλήσουμε για. Είναι βασικά buffers σκέφτεστε για ένα μέρος της μνήμης πίνακα που έχετε, έτσι δεν είναι; Εμείς συνήθως μιλάμε για υπερχείλιση όταν δεν έχετε τον έλεγχο πόσα ο χρήστης βάζει το, σωστά; Και η ιδέα είναι με υπερχείλιση μνήμης είναι βάζουν σε πολύ πάρα πολλά δεδομένα για το χώρο ότι έχετε ορισθεί για αυτούς, σωστά; Έτσι, αν σας πω, δίνουν μου κάποιες μήνυμα, είμαστε υποθέτοντας ότι πρόκειται να δώσει μας ένα λογικό μήνυμα μήκος. Ίσως γραμμές ένα ζευγάρι, εταζέρα. Γι 'αυτό και δεν ελέγχουν. Αντίθετα, μας τροφοδοτούν ένα ολόκληρο το βιβλίο, που είναι ένα μήνυμα, και υπερχειλίζει το ποσό των χώρο που έχουμε διατεθεί για αυτό. Και αυτό που συμβαίνει είναι ότι ενδέχεται να αντικαταστήσει μέρη που υποτίθεται ότι δεν πρέπει. Έτσι ξέρω Καθηγητής Μάλαν είπε κάτι για επιθέσεις υπερχείλισης buffer. Έτσι, αυτό είναι όπου ο χρήστης θα εισόδου κάποια τεράστια ποσότητα των δεδομένων με την ελπίδα ότι αντικαθιστά το παρελθόν το τέλος του buffer σας και αντικαθιστά something-- αναρωτιέμαι Έχω έχουμε αυτές τις διαφάνειες εδώ. Δεν νομίζω ότι έχουμε οι διαφάνειες αυτές εδώ. Αλλά ουσιαστικά αυτός αντικαθιστά κάποιο τμήμα της μνήμης που του επιτρέπει την πρόσβαση σε τμήματα του υπολογιστή σας ότι δεν θα έχουν κανονικά πρόσβαση. Το μεγαλύτερο πράγμα με υπερχείλιση μνήμης είναι ακριβώς να κατανοήσουν ότι συμβαίνει όταν δεν είστε ελέγχοντας πόσο πολύ σας χρήστης βάζει σε. Όταν δεν είσαι το είδος του διασφάλιση ενάντια σε αυτό. Και στην απλούστερη μορφή της πράγμα, είναι ακριβώς χρήστη σας εισάγοντας ένα τεράστιο ποσό των δεδομένων σε μια προσπάθεια για να αντικαταστήσετε κάποια ασφάλεια τμήμα της μνήμης σας. Αυτό είναι όλο. Έτσι, αυτό εδώ, στοίβα και να σωρού. Βασικά όλα αυτά είναι είναι απλά μια αναπαράσταση της μνήμης και όπου είναι αποθηκευμένα τα πράγματα. Αυτό είναι πραγματικά το είδος του όλα όσα χρειάζεται να ξέρετε. Τα μεγαλύτερα πράγματα που θα πρέπει να γνωρίζετε είναι that-- επιτρέψτε μου να δούμε αν υπάρχει μια better-- εδώ. Έτσι, αυτή είναι η στοίβα εδώ. Έτσι στοίβα έχει να κάνει με όλων των λειτουργιών του οργανισμού σας ότι είστε καλώντας σε κάθε δεδομένη στιγμή. Και αυτό είναι σημαντικό να θυμόμαστε θα off της περασμένης εβδομάδας με malloc είναι ότι δεν έχετε πραγματικά απαραίτητο έλεγχό του. Όλα εξαρτώνται από το πότε ορισμένα Οι λειτουργίες εκτέλεσης. Και όταν εκτέλεσης, αυτά τα έχουν τα λεγόμενα πλαίσια στοίβα που ανεβαίνουν εδώ. Έτσι, όλα τα είδη του συμβαίνει χωρίς πραγματική συμβολή σας. Μπορείτε να γράψετε το πρόγραμμά σας, και αφήστε το να τρέξει, και η στοίβα είδος της παίρνει φροντίσει τον εαυτό της, καθώς χρειάζεται να. Έτσι, αν στην κύρια είστε καλώντας κύβος, που θα περάσει μέχρι εδώ. Αυτό θα δημιουργήσει ένα πλαίσιο. Αλλά δεν υπάρχει τίποτα που κάνει ρητά για να δημιουργήσετε αυτό το πλαίσιο στοίβας, εκτός από γράψει τη λειτουργία για να αρχίσει με, εντάξει; Αυτό είναι το είδος της κάτω σας έλεγχος είναι ο σωρός με malloc. Έτσι, κάθε φορά που malloc κάτι, παίρνετε μνήμης από το σωρό. Και αυτό είναι η μνήμη που έχετε έχουν, για την έλλειψη μιας καλύτερης λέξης, ρητή έλεγχο, γιατί θυμόμαστε με malloc είναι βασικά εκεί μέχρι να σας πω αλλιώς. Για όσους από εσάς παρακολούθησαν τμήμα την περασμένη εβδομάδα, είναι εκεί μέχρι να το πω να πάει μακριά. Θα είναι εκεί, εκτός αν Αλλιώς δεν είπε. Έτσι ο σωρός είναι απλά κάτι μπορείτε να σκεφτείτε ως μνήμη ότι έχετε τον έλεγχο. Και αυτά είναι μόνο η δύο διαφορετικά μεγάλα πράγματα. Εκτός από αυτό, δεν πρέπει να έχετε να ανησυχείτε πάρα πολύ για την στοίβα και σωρού ερωτήσεις ή συνήθως πιο απλά αν έχετε τοπικές παραμέτρους ή μια λειτουργία θα ήταν στη στοίβα ή το σωρό. Προφανώς στην περίπτωση αυτή θα ήταν η στοίβα. Αν είστε mallocing κάτι, όπου είναι ότι προέρχονται από; Ο σωρός. Αν κοιτάξετε κουίζ πρακτική, εκείνες είναι γενικά το είδος των ερωτήσεων ότι έχουν. Δεν χρειάζεται να ανησυχείτε πάρα πολύ γι 'αυτό. Μπορείτε να πάρετε σε πιο ρητά για την στοίβα και σωρού αργότερα ή σε άλλες κλάσεις CS. Έτσι ακριβώς έχει το είδος της μια γενική ιδέα του τι είναι αυτό Θα ήταν καλό, το οποίο θα ακριβώς το είδος του πήγε πάνω. Οποιαδήποτε άλλα θέματα; Ναι; ΚΟΙΝΟ: Μπορείτε να πάτε πάνω Δείκτες και πάλι πολύ γρήγορα; ZAMYLA Chan: Δείκτες; Θέλετε εννοιολογική επισκόπηση των δεικτών ή προπονείστε με δείκτες; ΚΟΙΝΟ: Κάτι σαν το συντακτικό. ZAMYLA Chan: Η σύνταξη; Ναι. Εντάξει, είμαστε πάρει εκεί. Ναι, έτσι αυτό είναι ακριβώς το είδος του κάτι όταν έχετε μια αναδρομική συνάρτηση, κάθε φορά ότι η αναδρομική συνάρτηση είναι ονομάζεται, απλώς προσθέτει άλλο πλαίσιο στοίβας. Λίγο πολύ ένα παράδειγμα του πώς δεν το κάνετε πραγματικά έχουν τον έλεγχο πάνω από το κορνίζες για το stack σας. ΟΚ, δείκτες. Εντάξει, έτσι δημιουργώντας δείκτες. Θυμηθείτε, είναι απλά πληκτρολογήστε αστέρων. Έτσι, ανεξάρτητα από τον τύπο των δεδομένων που θα πάμε να δείχνουν προς. Έτσι, αυτό θα είναι ένας δείκτης σε ένα int. Αυτό θα μπορούσε να είναι ένας δείκτης σε char. Αυτό θα μπορούσε να είναι ένας δείκτης σε ένα πλωτήρα. Έτσι είναι βασικά ό, τι θέλετε να δείχνουν προς, αστέρων είναι το πώς θα κηρύξει το δείκτη, εντάξει; Αλλά τότε προφανώς παίρνει λίγο δύσκολο όταν έχεις δείκτη ή έχετε πρωταγωνιστήσει οτιδήποτε. Έτσι, η μεγάλη διαφορά είναι όταν είστε declaring-- έτσι έχουμε some-- έτσι Αυτό παίρνει κάποιο αστέρι int. Έτσι, αυτό είναι κάποιο δείκτη καλεί χ σε έναν int, σωστά; Έτσι θυμηθείτε τι κάνει αυτό Είναι αυτό απαιτεί το σύστημα X. Και αυτό πρόκειται να έχουν κάποια διεύθυνση, σωστά; Έτσι, ας πούμε αυτή είναι η διεύθυνσή μας. Pointers συγκρατούν διευθύνσεις. Έτσι αυτό που λέει είναι ότι σε αυτό το τοποθεσία, είμαστε αποθήκευση έναν int. Έτσι, ένας άλλος τρόπος που μπορούμε να σκεφτούμε αυτό είναι ότι αυτό είναι κάποια int. Δεν έχουμε πραγματικά ανατεθεί τίποτα ακόμα, αλλά αυτό είναι απλά ένας int. Έτσι, μπορούμε να κάνουμε είναι αν το κάνουμε πρωταγωνιστήσει x ισούται με 5, αυτό γίνεται 5, εντάξει; Αυτό λέει να πάει σε ό, τι χ είναι δείχνοντας, έτσι ώστε να πάει σε αυτή τη διεύθυνση που να ισούται με 5. Έτσι έχουμε εκχωρήσει 5 σε αυτή τη διεύθυνση, σωστά; Και στη συνέχεια, αν το κάνετε αυτό, Αυτό μας δίνει τη διεύθυνση της. Αυτή είναι η διεύθυνση του επιχειρηματία. Έτσι ποια είναι η διεύθυνση του x; Δεν ξέρουμε. Δεν έχουν εκχωρηθεί μια διεύθυνση. Θα μπορούσαμε να πούμε ότι είναι some-- τώρα δώσαμε είναι μια διεύθυνση, έτσι ώστε η διεύθυνση είναι 4. Και στην πραγματικότητα, αν πάμε μέσα από κάτι όπως αυτό, το είδος του τι κάναμε. Έτσι λειτουργεί μέσω here-- βρίσκω βοηθά αν έχετε σύρει έξω δείκτες. Αν είστε σε εξετάσεις σας, εγώ συνιστώ ανεπιφύλακτα την κατάρτιση κουτιά. Έτσι, αυτή η πρώτη, int x ισούται με 5. Αυτό σημαίνει ότι μόλις έχουμε κάποια τοποθετήστε στη μνήμη που είναι 5, σωστά; Και το τραπέζι μας εδώ μας λέει ότι είναι στη διεύθυνση 0x04. Και τότε θα δημιουργήσει κάποια δείκτη. Ας αναλυθεί ένα κάθε φορά. Έτσι, αυτό δημιουργεί κάποια κουτί με έναν int, σωστά; Είναι πρόκειται να κρατήσει κάποια διεύθυνση ενός αυτό. Έτσι, αυτό είναι κάποιο δείκτη. Και αυτή η κιμωλία είναι πραγματικά μικρό. Έτσι έχουμε κάποιο δείκτη εδώ. Και τραπέζι μας, μας λέει ότι η διεύθυνση είναι 0x08. Cool. Και είμαστε ανάθεση στη διεύθυνση του x. Θυμηθείτε, οι pointers συγκρατούν διευθύνσεις, εντάξει; Έτσι, αν θέλουμε να κρατήσει x, έχουμε για να χρησιμοποιήσετε τον τελεστή διεύθυνσης, το οποίο είναι το σύμβολο, για να πάρει τη διεύθυνση του Χ, η οποία στην περίπτωση αυτή, 0x04. Και στη συνέχεια, αν έχουμε κάποια αντίγραφο int, αυτό ακριβώς δημιουργεί κάποιο άλλο κουτί που κατέχει έναν int ονομάζεται αντίγραφο. Και αν έχουμε αναθέσει να this-- έτσι αυτό είναι αυτό αναφορά. Έτσι λέει να πάει σε ό, τι δείκτης διεύθυνσης κατέχει. Pointer κατέχει αυτή τη διεύθυνση, γι 'αυτό θα πάμε εδώ, και λέμε, εντάξει, τι σημαίνει αυτό; Είναι 5. Έτσι αντίγραφο γίνεται 5. Νόημα; Τι και αν προσπάθησα να εκχωρήσετε Αυτό ακριβώς το δείκτη. Τι κάνει δείκτη πραγματικά ίσες; Θα ήταν απλώς να είναι ό, δείκτης περιέχει, σωστά; Και τότε τι θα γινόταν αν το έκανα αυτό; Τι θα αντέγραφε είναι τώρα; ΚΟΙΝΟ: 0x08. ZAMYLA Chan: Ναι, η διεύθυνση του δείκτη μας. Κάθε μέρος του ότι το εν λόγω Πρέπει να επανεξεταστεί-εξηγηθεί; Cool. Υπάρχει σίγουρα μια πολύ διασκέδαση πρόβλημα για ένα κουίζ ότι μπορούμε κατά τη διάρκεια αυτής σας δίνει περισσότερη πρακτική. Τα παιδιά από την περασμένη εβδομάδα, μπορεί να να σας πω ότι δεν ήταν τόσο άσχημα. Πήραμε μέσω μιας ολόκληρης διάγραμμα, και ο καθένας έκανε μεγάλη. Εντάξει, έτσι ώστε να είναι επισκόπηση της σύνταξης των δεικτών. Το μεγαλύτερο πράγμα είναι να κατανοήσουμε πώς για τη δημιουργία τους, κάνουν αναφορά, και τη διεύθυνση του, εντάξει; Cool. Οποιαδήποτε άλλα θέματα πριν βουτάμε στην πράξη. Επίσης, αν θα πάμε μέσω τα προβλήματα πρακτικής και υπάρχει κάτι που θέλετε ένα επαναληπτικά για, μπορούμε να το κάνουμε αυτό πολύ. Έχετε κάτι; ΚΟΙΝΟ: structs και συνδεδεμένες λίστες. ZAMYLA Chan: structs και συνδεδεμένες λίστες, ΟΚ. Έτσι structs. Εμείς στην πραγματικότητα πρόκειται πάνω από αυτό απόψε πάρα πολύ. Εντάξει, έτσι structs. Structs είναι βασικά απλά ένας τρόπος για να κρατήσετε πολλαπλές τιμές των διαφόρων τύπων. Έτσι, με μια σειρά είμαστε περιορισμένη σε ένα τύπο δεδομένων. Σειρά μας έχει είτε να είναι μόνο αριθμοί, ή απλά να είναι χαρακτήρες, ή απλά να επιπλέει. Αλλά ίσως θα πρέπει να περιέχει περισσότερο από αυτό. Ίσως θα πρέπει να hold-- αν Σας μιλάμε για ένα μαθητή, θα πάμε να έχουν το σπίτι τους, τους Αριθμό ταυτότητας, την ηλικία τους, όπου ζουν, σωστά; Και όλα αυτά είναι διάφορα είδη των τύπων. Έτσι, δεν μπορείτε να αποθηκεύσετε εκείνων όλα σε μια σειρά. Έτσι τι μπορείτε να κάνετε είναι να σας μπορεί να δημιουργήσει ένα struct, η οποία μπορείτε να σκεφτείτε όπως σας προσωπική τύπο δεδομένων. Έτσι, αντί να έχει μόνο ints και αντί απλώς να έχουν πλωτήρες, μπορείτε να έχετε ένα μαθητή του τύπου ότι έχει όλα αυτά τα πεδία σε αυτό. Έτσι, με τον τρόπο που η προετοιμασία structs μας is-- πραγματικότητα δεδομένου ότι το γράψιμό μου είναι τρομερό, εμείς πρόκειται για τη μετάβαση στην πληκτρολόγηση. Woo. Εντάξει, οπότε αν θέλουμε να δημιουργήσουμε μια struct-- Είμαι ακριβώς πρόκειται να είναι εδώ κάτω. Αγνοήστε το σε κύρια ανεξάρτητα το οποίο θα χρησιμοποιήσετε αργότερα. Έτσι, με τον τρόπο που θέλετε να κάνετε είναι με typedef struct. Και ας ονομάσουμε αυτό φοιτητή γιατί αυτό είναι που χρησιμοποιούσα. Εντάξει, έτσι σημαίνει typedef είστε ορίζει ένα νέο τύπο, εντάξει; Υπάρχουν αποχρώσεις σε όταν κάνετε μόνο ένα struct έναντι ενός struct typedef. Για όλες τις προθέσεις και σκοπούς, εσείς είστε απλά πρόκειται να υποθέσουμε ότι είναι περίπου το ίδιο και απλά χρησιμοποιήσετε typedef struct για τώρα. Αυτό θα γίνει πολύ πιο εμφανής σε σας επόμενη P που ό, τι είναι αυτές οι διαφορές, αλλά δεν νομίζω ότι θα πρέπει να ανησυχείτε γι 'αυτό τώρα. Θα προτιμούσα σας ξέρουν πώς να δημιουργήσετε ένα, πρόσβαση σε αυτό, και να ορίσετε [; αξία. ?] Ένας νέος τύπος struct, και καλούμε το μαθητή. Έτσι, λοιπόν αφού τελειώσετε τη δημιουργία αυτή, για όλες τις προθέσεις και τους σκοπούς, θα έχετε έναν τύπο που ονομάζεται μαθητή. Και μπορείτε να σκεφτείτε ότι ακριβώς σαν ένα είδος σαν int, ή ένα πλωτήρα, ή μια χαρα. Είναι απλά ένας άλλος τύπος, εντάξει; Έτσι, σε αυτό το ένα, τι έχουμε; Έχουμε ίσως ένα όνομα. Έτσι ίσως θέλουμε ένα όνομα συμβολοσειράς. Και έχουμε ίσως μια int που είναι ένα αναγνωριστικό. Και έχουμε άλλο ότι είναι αριθμός τηλεφώνου. Και έχουμε some-- ας δούμε. Τι άλλο μπορεί να έχουμε; Θα έχουν κάποιο κορδόνι στο σπίτι του. Όλα τα πράγματα που έχει ένας μαθητής. Έτσι, αυτό δημιουργεί ένα struct τώρα. Λοιπόν, πώς θα μπορούσαμε να δημιουργήσουμε ένα μαθητή; Αν έχουμε κάποια μεταβλητή που είναι πρόκειται να μιλήσουμε για Walker εδώ, έτσι have-- είμαστε μόνο πρόκειται να καλέσετε αυτό το περιπατητή. Χρειάζεται ένα είδος. Τι τύπος σας; ΚΟΙΝΟ: Φοιτητής. ZAMYLA Chan: Φοιτητής. Έτσι, αυτό δημιουργεί απλώς ένα αντικείμενο που μπορείτε να σκεφτείτε ότι έχει όλα αυτά τα πράγματα. Απλά δημιούργησε ένα φοιτητή Walker. Έτσι τώρα πρέπει να είμαστε σε θέση να εκχωρήσετε όλα αυτά, σωστά; Έτσι κάνει κάποιος που θυμάται πώς έχουμε πρόσβαση σε ένα struct; ΚΟΙΝΟ: Περίοδος. ZAMYLA Chan: Περίοδος Ακριβώς. Έτσι, αν θέλαμε να εκχωρήσετε τον ένα όνομα, θα μπορούσαμε να το κάνουμε αυτό. Προφανώς αυτό θα be-- αυτό το μέρος εδώ θα να είναι μέσα στο κύριο, έτσι στην πραγματικότητα επιτρέψτε μου να κάνω αυτό. Δηλώστε αυτό πάνω από την κύρια έτσι ότι μπορούμε να το χρησιμοποιήσουμε κατά κύριο. Έτσι τώρα θέλω να κάνω ID, και εμείς θα κάνουμε μερικά μόνο από εκεί, και στη συνέχεια θα εκχωρήσει ένα σπίτι. Μπαμ. Cool. Έτσι τώρα θα πρέπει να έχουμε πάντα πρέπει να έχουν πρόσβαση τίποτα αργότερα on-- ίσως we-- αν ποτέ χρειαστεί να έχουν πρόσβαση σε τίποτα, ας κάνουμε ένα αναγνωριστικό αντίγραφο int. Και θέλω να αντιγράψετε ID σε αυτό περιπατητή. Πως θα μπορούσα να το κάνω; Χρειάζεται να έχετε πρόσβαση στο εσωτερικό του περιπατητή struct σε [? πηγαίνετε σε αυτό;] [; Ε?]. Και με τον ίδιο τρόπο που εμείς που του έχουν ανατεθεί μέχρι εδώ, πώς μπορεί να έχουμε πρόσβαση σε αυτό όταν θέλουμε να δίνουν αυτήν την τιμή σε κάτι άλλο; ΚΟΙΝΟ: Walker.id. ZAMYLA Chan: Ναι, ακριβώς. Έτσι, αυτό είναι λίγο πολύ όλα θα πρέπει να γνωρίζετε για structs. Απλά πρέπει να σκεφτείτε τους ως μια άλλη μεταβλητή. Βασικά μια δημιουργήσετε σας δική μεταβλητή τύπου, εντάξει; Μπορείτε να το χρησιμοποιήσετε για να δηλώσουν μεταβλητές με οποιονδήποτε τρόπο. Εδώ Walker εξακολουθεί να είναι μια μεταβλητή. Έχει μόνο ένα φοιτητή τύπου σήμερα αντί ενός int τύπου, ή ένα string τύπου, ή τύπου char. Αν υπήρχε ένας εύκολος τρόπος για να μιλήσει για structs, είναι κυριολεκτικά μόνο ένα δημιουργήσετε το δικό σας τύπο δεδομένων που σας επιτρέπει να ομαδοποιήσετε Όλα αυτά τα διαφορετικά το είδος των δεδομένων από κοινού. Μήπως αυτό έχει νόημα; ΟΚ. Ότι και πρόσβαση με τελείες. Λίγο πολύ όλα όσα χρειάζεστε. ΟΚ, όπου έκανε το PowerPoint μου πάει; Εδώ είναι. Λοιπόν αυτό είναι παράξενο. Aha. Εντάξει, δροσερό. Οποιαδήποτε άλλα πράγματα ή εμείς θέλετε να κατευθυνθείτε προς την πρακτική; Πρακτική; ΟΚ. Awesome. Πάω να βγείτε από αυτό. Εάν σε οποιοδήποτε σημείο κατά τη διάρκεια της πρακτικές ερωτήσεις, Είμαι στην ευχάριστη θέση να αναδιοργανώσουμε και να περάσουν από τα πράγματα. Έτσι έχω κουίζ μηδέν έως εδώ. Αν εσείς θέλετε να τραβήξετε επάνω στον υπολογιστή σας, ήθελα απλά να πάρουν πέντε λεπτά για να περιηγηθείτε. Ίσως να επιλέξει κάποια κορυφή ερωτήσεις που θέλετε να πάει πάνω. Αν εσείς δεν μπορείτε να αποφασίσετε, απλά θα σιγά-σιγά να αρχίσει να εργάζεται μέσα από αυτά, αλλά είμαι σίγουρος ότι είναι εκεί πρόκειται να είναι κάποια ερωτήσεις που είναι ιδιαίτερα πρόθυμοι να μιλήσουν και να έχουν Θέλω να δουλέψουν μαζί σας όλα. Έτσι απλά να προχωρήσει και να πάρει πέντε λεπτά. Μετακινηθείτε προς τα μέσα. Και αυτό είναι το κουίζ από το 2013. ΚΟΙΝΟ: Μηδέν; ZAMYLA Chan: Ναι, κουίζ μηδέν. Εμείς δεν κάνουμε ένα κουίζ πράγματα. Θα κάνουμε ότι σε μια-δυο εβδομάδες. Επίσης, για όσους από εσάς ήρθε στο τέλος, έχουμε καραμέλα, έτσι εσείς δεν θέλετε καραμέλα; ΚΟΙΝΟ: Σίγουρα. ZAMYLA Chan: Είμαι απλά πρόκειται να περάσει γύρω. Γεια σου, αν εσείς πάρετε εδώ νωρίς, μπορείτε να πάρετε περισσότερες καραμέλα. Αυτό είναι μια χαρά. Μπεν, θέλεις καραμέλα; Θέλετε μερικά από αυτά; Υπάρχει, επίσης, Snickers, αν κάποιος θέλει Snickers. Θα τα αφήσω εδώ και εδώ. Νιώστε ελεύθεροι. Θέλετε πια; ΚΟΙΝΟ: Όλα έτοιμα. Σας ευχαριστώ. ZAMYLA Chan: Και είχα ένα ωραίο μικρό σωρό εκεί στην αρχή. Εσείς έχετε να λάβει τα κουίζ και Παίρνω να έχουν ένα κουίζ ταξινόμησης κόμμα. Είναι το χάος. 900 εξετάσεις. Είναι πρόκειται να είναι τόσο πολλή διασκέδαση. Πρόκειται να είναι μεγάλη. Είμαι απόλυτα βέβαιος ότι είναι ένα από τα μεγαλύτερα συγκόλληση προσωπικό νύχτες του έτους. Έχει κανείς κάνει κουίζ μηδέν από πέρυσι ακόμα από περιέργεια; ΚΟΙΝΟ: Μέρη αυτό. ZAMYLA Chan: Μέρη αυτό, εντάξει. Μήπως έχετε απορίες σχετικά με κάποιο από αυτά; ΚΟΙΝΟ: Έχω ήδη πήγε σε ώρες γραφείου. Σας ευχαριστώ όμως. ZAMYLA Chan: Λοιπόν, ας ελπίσουμε εξακολουθεί να είναι το είδος της χρήσιμη. Πότε πήγατε στην ώρες γραφείου για αυτό; ΚΟΙΝΟ: TF μου τα είχε σήμερα το απόγευμα. ZAMYLA Chan: Αχ. Ποιος είναι TF σας; ΚΟΙΝΟ: Φρεντ [? Wujaya;]. ZAMYLA Chan: Υπάρχουν τόσα πολλά TFs. Τόσα πολλά. Εντάξει. Όποιος έχει οποιοδήποτε να ξεκινήσει ότι μπορώ σημειώνω ότι θέλουμε να εργαστούμε για; Υποθέτω ότι οι δείκτες ένα με τον πίνακα. Πηγαίνετε για αυτό. ΚΟΙΝΟ: Ίσως το διακόπτη μία. ZAMYLA Chan: Έτσι τον αριθμό 12; Υποθέτω αριθμό 8 και 9 είναι κατά πάσα πιθανότητα οι άνθρωποι αυτοί θέλουν να πάνε πάνω. ΚΟΙΝΟ: Και 10 και 11. ZAMYLA Chan: Και εσείς ξέρετε μπορείτε να πάρετε μια σελίδα σημειώσεων, σωστά; ΚΟΙΝΟ: Ναι, αυτό είναι τόσο μας επιτρέπεται να τεθεί σε αυτό. ZAMYLA Chan: Έχετε το δικαίωμα να βάλει ό, τι θέλετε. Και αυτό μπορεί να είναι δακτυλογραφημένες. Σε ό, τι θυμάμαι, το δικό μας ήταν δακτυλογραφημένες. ΚΟΙΝΟ: Μπορείτε να κάνετε πίσω και οι δύο πλευρές; ZAMYLA Chan: Ναι, και οι δύο πλευρές. Έτσι, κάτι σαν το σωρό και [? πίσω τέλος;] σωρό, τρέξιμο σας φορές. Χρήσιμα. Ίσως λίγα πράγματα για δείκτες για να σας υπενθυμίσω. Σύνταξη για τα πράγματα. Έχοντας ακριβώς όπως ένα σκελετό το πρόγραμμα μπορεί να είναι εξαιρετικά χρήσιμη. Ξέρω ότι πάντα ξεχάσει τι ακριβώς Εγώ έπρεπε να γράψω για int main, γιατί πάντα απλά να αντιγράψετε επικόλληση από την προηγούμενη σειρά μου P ή είναι ήδη εκεί, έτσι Ποτέ δεν το έγραψε πραγματικά, έχοντας έτσι ότι μπορεί να είναι εξαιρετικά χρήσιμη. ΟΚ, οπότε γιατί να μην κάνουμε εμείς ξεκινήστε με αριθμό 8 στη συνέχεια; Εντάξει. ΟΚ. Έτσι, θεωρούν το πρόγραμμα παρακάτω. Έτσι, προφανώς, όταν βλέπουμε δείκτες, είναι πιθανώς μια καλή ιδέα να αρχίσετε να σχεδιάζετε, σωστά; Θέλω να ξέρω όπου όλα μου μεγάλα κομμάτια της κιμωλίας πήγε. Αυτό είναι το είδος ενοχλητικό. Έτσι, έχουμε εδώ κάποια λειτουργία εναλλαγής ότι πρόκειται να πάρει σε δύο δείκτες. Έτσι, στην περίπτωση αυτή, θα πρέπει πραγματικά να είναι μεταγωγής τα πράγματα σε σχέση με την αρχική μας συμφωνία ανταλλαγής λειτουργία που πήρε μόνο στα αντίγραφα. Έτσι τι πρόκειται να κάνουμε is-- ας αρχίσουμε με το κύριο, επειδή αυτό είναι όπου το 1 είναι. Έτσι έχουμε κάποια int x 1. Έχουμε κάποια ομάδα που είναι ίση με 2. Και τότε έχουμε κάποια ανταλλαγής ότι πρόκειται να πάρει εκείνα. Και ας δούμε τι έχουμε εδώ. Και σε table-- μας αμάν. Πώς θα πάω να το κάνω αυτό; Πάω να επιστήσει τραπέζι μου εδώ. Μόλις το κάνει εκεί. Μόλις το κάνει. 1, 2, 3, 4, 5, 6, 7. Και μας δίνουν ότι το 1 είναι 1, 2 και 1. Cool. Awesome. Μέχρι 3. Και υπάρχει [; 1. α;] Εντάξει. Και τότε η διεύθυνση του x είναι 0x123. Και το Υ είναι Ox127. Cool. Εντάξει. Θέλω δουλεύετε σε αυτό για μόλις like-- εργάζονται σε αυτό με τους ανθρώπους γύρω σας. Μακάρι να είχα πει ότι ενώ ήμουν σύσταση. Εργάζονται σε αυτό. Δοκιμάστε και να εργάζονται σε αυτό από τον εαυτό σας για ένα-δύο λεπτά, και τότε εγώ θα εργάζονται σε αυτό μαζί σας. Επειδή ο μόνος τρόπος για να είστε πραγματικά πρόκειται να μάθετε είναι με τον τρόπο αυτό τον εαυτό σας. Καμία ανησυχία. Καλή τύχη. Εντάξει, γιατί να μην κάνουμε εμείς σιγά-σιγά αρχίσουν να εργάζονται μέσα από αυτό. Έτσι, ο καθένας παίρνει μετά από μία γραμμή, χ είναι 1. Μετά την γραμμή δύο, x και y είναι 1 και 2, σωστά; Cool. Έτσι η γραμμή τρία είναι όπου τα πράγματα πάρετε ενδιαφέρουσες φυσικά. Έτσι, αυτό που έχουμε κάνει εδώ το έχουμε ανταλλάξει τώρα. Εμείς λέμε ότι η x και y έχουν αυτά τα σημεία, ή έχουν τη διεύθυνση χ και γ, σωστά; Έτσι, στην περίπτωση αυτή, τρία, ποια είναι η αξία του ενός; α είχε περάσει στο, έχει δοθεί η τιμή της διεύθυνσης του x, σωστά; ΚΟΙΝΟ: 1; ZAMYLA Chan: Έτσι μπορούμε να το προσθέσετε στη χ; Ποια είναι η διεύθυνση του x; ΚΟΙΝΟ: 0x123. ZAMYLA Chan: Ακριβώς. Αλλά αυτό είναι μια πραγματικότητα που δείχνει να; Αν ήμασταν σε dereference ένα, Τι αξία θα είχε να μας δώσει. ΚΟΙΝΟ: 1. ZAMYLA Chan: Θα ήταν να μας δώσει 1, επειδή ό, τι λέμε είναι να πάτε σε αυτό διεύθυνση, να μας πείτε ποια είναι η αξία είναι. Λοιπόν, τι θα μπορούσε να β? ΚΟΙΝΟ: 0x127. ZAMYLA Chan: Ακριβώς. Έτσι είναι η διεύθυνση του y. Και τότε τι [; dereference; ?] ΚΟΙΝΟ: 2. ZAMYLA Chan: Εντάξει, έτσι τώρα τέσσερα. Είπαμε είναι equal-- και τώρα έχουμε γίνει int temp είναι ίσο με ένα αστέρι της. Λοιπόν, τι αλλάζει; Υπάρχει μόνο ένα πράγμα ότι αλλάζει εδώ. Τι είναι αυτό; ΚΟΙΝΟ: Temp. ZAMYLA Chan: Η temp. Έτσι, μπορούμε να ξαναγράψουμε όλα αυτά. Μια καλή στρατηγική για αυτά είναι απλά υπολογίζοντας Ποιες αλλαγές, επειδή τις περισσότερες φορές υπάρχει μόνο ένα πράγμα που είναι πρόκειται να αλλάξει σε οποιοδήποτε δεδομένο σημείο, εντάξει; Έτσι ορίσαμε temp. Τώρα το επόμενο σημείο μας, πέντε, εμείς έχουν κάνει ένα αστέρι ίσο με πρωταγωνιστήσει β. Έτσι, αυτό που αλλάζει τώρα; ΚΟΙΝΟ: Star α. ZAMYLA Chan: Αστέρι ένα, έτσι ό, τι άλλο μένει το ίδιο. Και τι πρωταγωνιστήσει μια ίση; ΚΟΙΝΟ: 2. ZAMYLA Chan: 2. Υπέροχο. Awesome. OK, και στη συνέχεια, τώρα έχουμε ξεκινήσει b είναι ίσο με temp. Έτσι, το μόνο που αλλάζει είναι αστέρι β. Όλα τα άλλα παραμένει το ίδιο. Και τι είναι αστέρι β ίσο με τώρα; Και έχετε ολοκληρώσει το τραπέζι. Επειδή τώρα στο τέλος, αν πούμε x και y, γνωρίζουμε ότι σε αυτό το point-- γνωρίζουμε ότι, όταν έχουμε άλλαξε πρωταγωνιστήσει σε ένα 2, αυτό που έκανε είναι ότι είπε εντάξει, σε αντιμετώπιση 0x123 εδώ, να το αλλάξετε. Τώρα αυτό ήταν 2. Και στη συνέχεια σε αυτό το σημείο, είπαμε ΟΚ, πάμε να πρωταγωνιστήσει β. Έτσι, πηγαίνετε στη διεύθυνση που 0x127 και ένα 1 κάνει. Έτσι τώρα στο τέλος, όταν μπορούμε πραγματικά να επιστρέψετε για την κύρια, έχουμε στην πραγματικότητα ότι το x είναι ίσο με 2 και το γ είναι ίσο με 1. Όλοι καλό με αυτό; Εντάξει, δροσερό. Αριθμός 9. Εσείς εργάζονται σε αυτό. Πάω να συσταθεί ένα συμβούλιο έτσι μπορούμε να βγάλουμε μέσα από αυτό. Θα είναι ένα ωστικό κύμα. Τα μεγάλα τραπέζια μπορεί να είναι πραγματικά τρομακτικό, το ξέρω. Αλλά αν απλά τους πάρει μία γραμμή ένα χρόνο, παίρνουν πολύ λιγότερο τρομακτικό. Εντάξει. Έτσι, ξέρετε ότι αυτό θα έχει περάσει κύρια πρώτη, σωστά; Προετοιμάζει x και y και Στη συνέχεια προσπαθεί να τους swap. Έτσι, ακόμη και swap είναι παραπάνω, το πραγματικό τρόπο GOES είναι ότι θα πάμε μέσω των κύριων, και στη συνέχεια σας καλεί μέχρι να ανταλλάξουν, εντάξει; Έτσι, όλοι γνωρίζουν ότι. Έτσι που το ένα το κάνετε παιδιά θέλουν να αρχίσουν με; Υπάρχει κάποιος που πραγματικά βέβαιος για καθένα από αυτά; Ή ακόμη και εν μέρει σίγουρος; Γιατί δεν ξεκινάμε με το x; Τι νομίζουμε ότι το x είναι; ΚΟΙΝΟ: 1. ZAMYLA Chan: 1. Έτσι, τότε γιατί είναι 2. Και αυτό γιατί η μεγάλη διάκριση εδώ είναι ότι είμαστε μόνο περνώντας αντίγραφα σε, σωστά; Δεν περνάτε με αναφορά. Έτσι, ακόμη και στο τέλος της Αυτό το πρόγραμμα x και y έχει μείνει το ίδιο, επειδή είναι απλά αντίγραφα στη λειτουργία ανταλλαγής. Δεν πραγματικά να αλλάξει, σωστά; Έτσι τι γίνεται με α, β, και η θερμοκρασία; ΚΟΙΝΟ: Α είναι Β. ZAMYLA Chan: Α είναι Β. Έτσι, σε αυτή την περίπτωση, ένας ήταν x, που είναι 1, σωστά; Μέχρι εδώ, ας περπατήσει μέσα από αυτό. Έτσι, κατά την έναρξη, και α b είναι 1 και 2 και απροσδιόριστη. Έτσι αρχικά temp παίρνει ανατεθεί σε ένα, έτσι temp είναι 1. a είναι ίση προς Β, έτσι παίρνουμε 2, και το b είναι ίσο με το temp. Τώρα παίρνουμε 1. ΚΟΙΝΟ: Στο προηγούμενο αυτό αντάλλαξαν εμπορικό και x και y συμπλεκτικό σύμβολο. Τι ακριβώς σημαίνει αυτό; ZAMYLA Chan: Έτσι, αυτό σημαίνει ότι είστε περνώντας από την αναφορά. Έτσι, αυτό σημαίνει ότι είστε πραγματικά περνώντας τις διευθύνσεις όπου Χ και Υ είναι αποθηκευμένα. ΚΟΙΝΟ: Αλλά δεν είστε την αντιστροφή της διεύθυνσης. ZAMYLA Chan: Δεν είστε εναλλαγή των διευθύνσεων. Είσαι εναλλαγή τι είναι μέσα σε αυτούς. Όπως και ό, τι είναι σε αυτή τη διεύθυνση, και γι 'αυτό λειτουργεί. Έναντι σε αυτό το πρόγραμμα εδώ τι που κάνετε εσείς δημιουργείτε αντίγραφα. Έτσι, έχετε x και y που υπάρχουν ως δικές τους μεταβλητές εδώ. Στη συνέχεια, όμως, όταν περνάτε τους σε swap, είναι όπως αν είστε δημιουργία όλη αυτή η άλλη ομάδα. Έτσι, ποτέ δεν είσαι πραγματικά συγκινητικό x και y. ΚΟΙΝΟ: Αν συμπλεκτικό σύμβολο x είναι αυτό που είναι σε η διεύθυνση του x, τι θα πρωταγωνιστήσει x είναι; ZAMYLA Chan: Εμπορικό και Χ είναι αυτό που είναι σε η διεύθυνση του x, τότε star-- καλά, στην περίπτωση αυτή, το Χ δεν είναι ένας δείκτης. ΚΟΙΝΟ: Ω, εντάξει. Έτσι, μπορείτε να το κάνετε μόνο γιατί δεν είναι ένας δείκτης. ZAMYLA Chan: Δεξιά. Μπορείτε να το κάνετε μόνο αστέρι του κάτι που είναι ένας δείκτης. Ίσως θα μπορούσατε να το κάνετε σε πράγματα που Δεν είναι, όμως, ότι η μεταγλώττιση σας κάνουμε ότι τρελά πράγματα θα συμβούν. Και δεν είμαι ακριβώς σίγουροι για το τι θα συμβεί. Μπορείτε πάντα να πάρετε το διεύθυνση του κάτι, αλλά δεν μπορείτε να dereference κάτι που δεν είναι ένας δείκτης. Αν αυτό έχει νόημα, ότι είναι μια καλή διάκριση να έχει. Έτσι, δεν είναι πολύ κακό, σωστά; Οι πίνακες είναι αισίως να πάρει λίγο λιγότερο τρομακτικό. Εντάξει. Αχ, τα διασκεδαστικά. Μέχρι τώρα, γράφοντας τη δική σας κωδικό. Έτσι, Πάω να σας αφήσει να δουλεύετε σε αυτό για περίπου τέσσερα λεπτά, και τότε μπορούμε να μιλήσουμε σχετικά με τους τρόπους για να το προσεγγίσει. Μη διστάσετε να μιλήσετε με τους ανθρώπους γύρω σας. Επίσης, αυτό είναι ενδιαφέρον. Είναι σαν ένα όλα τα κορίτσια τμήμα τώρα. Αρκετά συναρπαστικό. Εκτός Chang. Αλλά Chang δεν είναι πραγματικά μέρος του τμήματος. Awesome. Τέλεια. Γι 'αυτό και θα σας δώσει ένα ζευγάρι συμβουλές. Σε περίπτωση που έχετε περισσότερα από ένα χαρακτήρα, όπου έχετε κάτι άλλο όπως το 123 ή το 1000 κάτι, θα πρέπει να είναι σε θέση να βρόχο μέσα και να μετατρέψετε κάθε μία από αυτές. Έτσι, υπάρχει ένα ζευγάρι τρόπους που θα μπορούσατε να το κάνετε αυτό, αλλά είστε σίγουρα πρόκειται να έχουν ένα για το βρόχο κάπου εκεί στο βρόχο μέσω αυτών, η οποία είναι κάτι σαν το giveaway με ακόμα και αν σας καλέσει strlen, το οποίο είναι κάτι σαν oh ίσως θέλετε να χρησιμοποιήσετε το μήκος της σειράς με κάποιο τρόπο. Εντάξει. Έτσι, τι εσείς πιστεύετε ότι θα μπορούσε να είναι ένα από τα πρώτα πράγματα που θέλουμε να κάνουμε; Υπάρχει ένα ζευγάρι περιπτώσεις εδώ πρέπει να αντιπροσωπεύουν, σωστά; Είτε έχουμε κάτι που είναι null. Τι έχουμε; Θήκες. Null. Έχουμε την υπόθεση που έχει κάτι άλλο εκτός από 09, σωστά; Ας πούμε ότι έχει τις επιστολές. Ή έχουμε την περίπτωση που είναι έγκυρο. Τρεις περιπτώσεις να σκεφτώ. Ναι, ποιο νομίζετε ότι θα μπορούσε να είναι η ευκολότερη για να αναλάβει τη φροντίδα του πρώτου; ΚΟΙΝΟ: Null. ZAMYLA Chan: Η υπόθεση είναι μηδενική. Λοιπόν, τι θα κάνουμε εκεί; ΚΟΙΝΟ: [δεν ακούγεται]. ZAMYLA Chan: Ναι. Και αυτό που θέλω να κάνω; ΚΟΙΝΟ: Επιστροφή 0. ZAMYLA Chan: Ακριβώς. Awesome. ΟΚ. Μέχρι τώρα περίπτωση που έχει γράμματα και η υπόθεση ότι είναι έγκυρη. Μπορούμε να πάρουμε πραγματικά τη φροντίδα αυτό μέσα σε ένα βρόχο, εντάξει; Έτσι, ένας τρόπος για να it-- κάνει ό, τι μπορεί να είναι ένας απλός τρόπος για να ελέγξετε αν είναι έγκυρη. Θα πρέπει να περάσουν από κάθε γράμμα και να κάνει τι; ΚΟΙΝΟ: Ελέγξτε αν είναι in-- ZAMYLA Chan: Δεξιά, μπορείτε να ελέγξετε αν είναι μεταξύ 0 και 9, σωστά; Και στη συνέχεια, στην περίπτωση ότι είναι έγκυρο, είμαστε πρόκειται να καταλήξει επανάληψη μέσω εγχόρδων μας ούτως ή άλλως, σωστά; Γιατί λοιπόν να μην προσπαθήσουμε και τα συνδυάσουν σε ένα. Εμείς πάμε για να επαναλάβει μέσω κορδόνι έξω, και όπως εμείς το κάνουμε αυτό, θα πάμε στην πρώτη κάνετε έναν έλεγχο για να δούμε αν αυτό το γράμμα ή αν αυτός ο χαρακτήρας είναι έγκυρη. Αν είναι, θα πάμε για να εκτελέσει το λειτουργία που πρέπει να το μετατρέψετε. Διαφορετικά θα επιστρέψει 0, σωστά; Έτσι, πριν το κάνουμε αυτό, μπορούμε ίσως να θέλετε κάποιο μεταβλητή ότι μπορούμε να επιστρέψουμε στο τέλος ότι πρόκειται να είναι πραγματική μας αξία. Έτσι θα πάμε να προετοιμαστεί κάποια αξία να είναι 0. Και αυτό είναι μόνο το πώς θα ξεκινήσετε. Έτσι, Πάω να απαλλαγούμε από αυτό. Λοιπόν, πώς θα πάμε να επαναλάβει μέσω αυτής της σειράς. Κοινό: Για την μέθοδο loop. ZAMYLA Chan: Ένας βρόχος for. Έτσι, ό, τι είναι για μας; ΚΟΙΝΟ: i είναι 0. ZAMYLA Chan: MM-HM. Και τι είμαστε επανάληψη μέχρι; ΚΟΙΝΟ: το μήκος της οδού του s. ZAMYLA Chan: Εντάξει, τώρα θυμάμαι υπάρχει ένας καλύτερος τρόπος. [Δεν ακούγεται]. ΚΟΙΝΟ: Ναι, μπορούμε να κάνουμε n ισούται με. ZAMYLA Chan: Ακριβώς. ΚΟΙΝΟ: i είναι μικρότερο από το Ν. ZAMYLA Chan: Και γιατί Θα θέλουμε να το κάνουμε αυτό; Θυμάστε το λόγο; ΚΟΙΝΟ: Πρέπει να υπολογίσει εκ νέου. ZAMYLA Chan: Becasue αυτόν τον τρόπο θα Αρκεί να υπολογίσει strlen φορά. Αν κάνω εγώ είναι μικρότερο από strlen s, αυτό σημαίνει ότι υπολογίζει εκ νέου το μήκος κάθε φορά θα τρέξει ο βρόχος for, το οποίο δεν είναι ένα τεράστιο κόστος της ενέργειας, αλλά είναι καλύτερη πρακτική για να προσπαθήσουμε και να κάνουμε τα πράγματα όπως ότι από τη στιγμή. Εκτός ίσως έχετε ένα τρελό κορδόνι ότι αλλάζει σε κάθε επανάληψη. Αλλά αν είναι διαμονή το ίδιο, να το αποθηκεύσετε. Εντάξει. Και τότε εγώ συν συν. Awesome. Είμαστε στο δρόμο μας. ΚΟΙΝΟ: Πραγματικά γρήγορα. Κατ 'αρχάς, ας πούμε απλά έκανα λιγότερο από strlen του s, είναι αυτοί που μας ταξινόμησης για το σχεδιασμό καθόλου ή απλά ορθότητα; Δεν είναι. Είμαστε ταξινόμησης για την ορθότητα για κουίζ όσο ξέρω. Δεν μπορώ να κάνω μια πλήρη σε εγγύηση, αλλά για το μεγαλύτερο μέρος, συντριπτική πλειοψηφία είναι ορθότητα, γιατί είστε κάτω από μεγάλη πίεση χρόνου. Σχεδιασμός συνήθως σημαίνει έχετε χρόνο να σκεφτείτε για την κομψότητα της κατάστασής σας. Εντάξει, έτσι είμαστε επανάληψη μέσα. Έτσι θα πρέπει είτε να ελέγξετε για να να δούμε αν αυτός ο χαρακτήρας είναι έγκυρη ή αν μπορούμε να εκτελέσουμε μας κανονικό [; α να θ?] λειτουργία. Μπορούμε να ανησυχείτε για το τι ότι είναι σε δευτερόλεπτα. Γιατί λοιπόν να μην έχουμε take-- αν κάποιος μπορεί να σκεφτεί για έναν τρόπο για να ελέγξετε για να να δούμε αν αυτό είναι έγκυρο. Ξέρουμε ότι πρόκειται να είναι μερικά αν η κατάσταση, σωστά; Και θυμηθείτε ότι αυτό είναι σε ASCII, έτσι πώς θα μπορούσε βλέπουμε αν δεν είναι 0,1, 2, 3, 4, 5, 6, 7, 8, ή 9. ΚΟΙΝΟ: Αν άλφα. ZAMYLA Chan: Έτσι, αν άλφα θα μόνο ας ξέρω αν είναι ένα γράμμα. Και αν μας δώσει ένα σύμβολο, είναι εξακολουθεί να μην είναι αρκετά πρόκειται να ελέγξει. Έτσι, αν σηκώσει ASCII σας τραπέζι, γνωρίζουμε ότι το 0 έως το 9 βρίσκονται σε ένα τμήμα. Πες μου οι αριθμοί που αντιστοιχούν σε αν είναι δυνατόν. ΚΟΙΝΟ: 40. ZAMYLA Chan: Έτσι η περιοχή είναι σαν 40-- ΚΟΙΝΟ: Ίσως. 48 έως 57. Δεν είμαι σίγουρος. ZAMYLA Chan: 40-57; ΚΟΙΝΟ: 48, νομίζω. ZAMYLA Chan: 48 έως 57. Έτσι γνωρίζουμε ότι εκείνοι ASCII symbols-- αν η τιμή ASCII δεν είναι μεταξύ 48 και 57, δεν είναι έγκυρο, σωστά; Έτσι, θα μπορούσαμε να χρησιμοποιήσουμε για να το πλεονέκτημά μας, ενδεχομένως; Πώς θα πάμε για να πάρει Αυτή η επιστολή, πρώτα μακριά; Πώς μπορούμε πρόσβαση Αυτή αυτός ο χαρακτήρας; ΚΟΙΝΟ: s βραχίονα i. ZAMYLA Chan: MM-HM. Επειδή μπορούμε να σκεφτούμε χορδές, όπως πίνακες, θυμηθείτε. Έτσι, αυτό που θέλουμε να πούμε; Θέλουμε να πούμε εάν αυτό is-- Θα σας δώσω μια υπόδειξη. Είναι μια λιγότερο από ό, τι. Τι να το σκέφτεστε πρέπει να είναι μικρότερη από ό, τι; ΚΟΙΝΟ: 57; ZAMYLA Chan: 47, σωστά; Αλλά εκπροσωπεί επίσης ότι όπως σας ένα 0 σε ενιαίο [; ακτίνες;], γιατί αυτό είναι ο χαρακτήρας 0. Θα μπορούσατε επίσης να βάλετε 47. Έχοντας τον πίνακα ASCII, όπως βλέπετε, είναι απλά κάτι θα πρέπει να έχετε στο φύλλο κουίζ σας. Έτσι, εάν αυτή είναι η περίπτωση, αν είναι ένα λιγότερο από ό, τι 0-- όχι απαραίτητα και. Είναι μόνο είτε πρόκειται να είναι μικρότερη ή μεγαλύτερη από 9. Έτσι, μπορείτε να συμπληρώσετε αυτό το τελευταίο για μένα; Έτσι ή s του i είναι τι, Ρέα; ΚΟΙΝΟ: Μεγαλύτερη από 9. ZAMYLA Chan: Εκεί. Μήπως αυτό έχει νόημα να ο καθένας, πώς φτάσαμε εκεί; Τα προβλήματα αυτά, είναι σαν τη στιγμή που θα δείτε τις λύσεις, είναι όπως το OH, OK. Και αυτός είναι ο λόγος που η πρακτική θα σας βοηθήσει. Εντάξει, έτσι ώστε να επιστρέψει 0. Υπέροχο. Εντάξει. Διαφορετικά, ό, τι θέλουμε να κάνουμε; Αυτό είναι το ενδιαφέρον μέρος όπου αυτό είναι λίγο πιο όπως τα μαθηματικά έναντι CS κατά τη γνώμη μου. Υπάρχει κάποιος που έχει μια ιδέα για το πώς θα μπορούσαμε να το κάνουμε αυτό; Έτσι, το σημαντικό πράγμα που πρέπει να συνειδητοποιούν είναι ο πρώτος χαρακτήρας παίρνουμε πρόκειται να είναι η υψηλότερη ψηφίο ώστε, σωστά; Έτσι, αν ψάχνουμε σε μετατροπή 123, η πρώτη φορά που διέτρεξε Είναι πρόκειται να είναι 1, αλλά χρειαζόμαστε ότι για να είναι 100 μέχρι το τέλος, έτσι δεν είναι; Έτσι, ένα πράγμα που μπορείτε να κάνετε είναι ότι με κάθε επόμενο ψηφίο παίρνετε, έχετε πολλαπλασιάσει την αξία σας με 10, έτσι ώστε από τη στιγμή που θα φτάσετε στο τέλος, ό, τι έχει μετατοπίστηκε προς τα πάνω, σωστά; Έτσι, την πρώτη φορά που εκτελείτε αυτό, έχετε 1 ως αξία σας. Δεύτερη φορά που θα τρέξει, θα πολλαπλασιάσει την αξία σας από 10. Θα την ενημέρωση, έτσι ώστε να είναι τώρα 10, και μπορείτε να προσθέσετε στην επόμενη αξία σας. Και τότε πολλαπλασιάστε το με 10 και να προσθέσει στην επόμενη αξία σας. Και αυτός είναι ο λόγος που το λέω αυτό είναι πολύ περισσότερο σαν δοκιμή ένας αλγόριθμος μαθηματικά έναντι ΑΧ, αλλά εγώ παρεκκλίνω. Δεν γράφω τα κουίζ. Έτσι, ένα πράγμα που μπορούμε να κάνουμε είναι να λένε ότι οι καιροί αξία ισούται με 10. Έτσι, αυτό πρόκειται να αλλάξει ψήφιο σας μία φορά κάθε χρόνο. Και τότε ακριβώς θέλετε να προσθέσετε. Θέλουμε να προσθέσω σε ό, τι εμείς απλά πήρε, σωστά; Λοιπόν, πώς μπορούμε πραγματικά να μετατραπούν μας Χαρακτήρων ASCII στον αριθμό ότι αντιπροσωπεύει; Έτσι, γνωρίζουμε ότι το 0 είναι ίσο με 47, σωστά; Έτσι, αν το 0 είναι 47, αυτό θα πρέπει να κάνουμε για να το να καταστεί πραγματικά να είναι ένας int 0; ΚΟΙΝΟ: Είναι 48. ZAMYLA Chan: 48; Λυπάμαι. Θα αφαιρέσουμε 48, σωστά; Θυμηθείτε ASCII μαθηματικά; Μπορούμε να τους αντιμετωπίσουμε μόνο σαν κανονικό αριθμό. Αν τους αντιμετωπίζουν σαν αριθμούς, γίνονται αριθμοί αποτελεσματικά. Έτσι, αν έχουμε s του i, το οποίο ας να πω σε αυτή την περίπτωση είναι ίση με 0. Έτσι s ί στην περίπτωση αυτή θα είναι η ASCII-- η int ASCII για αυτό θα ήταν 47. Έτσι θα μπορούσαμε να subtract-- ή 48. Θα μπορούσατε να το κάνετε αυτό, είναι ένας τρόπος. Ξέρει κανείς μια καλύτερη τρόπο θα μπορούσαμε να κάνουμε 48; Εμείς απλά είπε 0 is-- πάει σε η ASCII θα μπορούσατε να κάνετε απόσπασμα 0. Έτσι κάνει αυτό το είδος της κάνει αίσθηση πώς λειτουργεί αυτό; ΚΟΙΝΟ: Σε αυτό το σημείο, είναι η τιμή 0 γιατί ακόμα και αν το πολλαπλασιάζουμε με 10, είστε ξεκινάμε με μηδέν, έτσι πρέπει να είναι ενεργοποιημένο; ZAMYLA Chan: Έτσι, στην περίπτωση αυτή, θα θέλουν να το πολλαπλασιάσει, πριν να προσθέσετε, διότι στην περίπτωση αυτή, ναι, θα ήταν ακόμα be-- δείκτη μου λείπει. Η τιμή σε αυτή την περίπτωση, η πρώτη φορά που θα τρέξει, θα είναι μηδέν. Έτσι, είστε απλά προσθέτοντας σε αυτό το πρώτο ψηφίο. Αυτό που είναι σημαντικό είναι η επόμενη φορά θα επαναλάβει, θέλετε να το ανεβάσουμε πριν προσθέσετε το επόμενο ψηφίο σας. Μήπως αυτό να διευκρινίσει για εσάς; ΟΚ. Μερικές φορές θα πάμε να πάρετε περίεργα περισσότερα πράγματα Mathy. Αν είχατε περισσότερες από αυτό, πρόκειται ακόμα να get-- θα πάμε να κάνουμε αρκετά καλά. Μερική πίστωσης είναι μια πολύ μεγάλο πράγμα για CS50 κουίζ. Έτσι γράψετε ό, τι γνωρίζετε. Αν έχεις τα πάντα εκτός από εδώ, είστε ακόμα πρόκειται να κάνουμε πολύ καλά το πρόβλημα. Επειδή είστε που δείχνουν, Εντάξει, εγώ σχεδόν ξέρω. Ξέρω ότι πρέπει να επαναλάβει μέσα. Ξέρω τι πρέπει να ελέγξετε για. Δεν μπορώ ακριβώς να κάνει αρκετά πάρετε το πώς να το μετατρέψετε. Θα πάμε να είναι εντάξει. Ναι, θα πάμε να χάνουν ένα ζευγάρι σημείων, αλλά είστε ακόμα πρόκειται να πάρει ένα καλό αριθμό των σημείων για κάτι όπως ότι αν είστε λείπει αυτές τις δύο γραμμές. Θα ήταν σαν να εντάξει, αυτό το πρόσωπο ξέρει τι κάνουν. Μαθηματικά είναι δύσκολο. Έτσι θα έλεγα ότι θα ήθελα να είναι μια χαρά. Εντάξει, έτσι εσείς έτοιμοι να δοκιμάστε strlen με δείκτες τώρα ότι εσείς είστε ο δείκτης δάσκαλοι; Γι 'αυτό θα σας αφήσει να δουλεύετε σε αυτό για λίγο. Αν κάποιος χρειάζεται ένα αναψυκτικό. Έτσι θέλετε να χρησιμοποιήσετε το δείκτη αριθμητική, και στη συνέχεια, αν s είναι μηδενική, η εφαρμογή σας θα πρέπει να επιστρέψει 0. Τα πράγματα όπως αυτό που κάνετε πραγματικά ευχάριστη θέση να καλέσετε μόνο strlen στο τέλος της ημέρας. Νομίζω ότι αυτό θα μπορούσε να είναι λίγο ευκολότερη από ό, τι το προηγούμενο, το οποίο είναι καλό. Θα σας δώσω άλλο ένα λεπτό ρε παιδιά, και στη συνέχεια θα δουλέψουμε μέσα από αυτό. Και τότε θα έχουμε να πάμε σε διακόπτες. Εντάξει, έτοιμος παιδιά; Ίσως λίγο. Έτσι έχω να σας σας δοθεί δύο επιλογές, σωστά; Είτε ελέγξτε για άκυρες και επιστρέφει 0 αν είναι, ή όντως υπολογιστεί το μήκος. Έτσι, ο οποίος θέλει να γράψει ελέγξετε για null; Πηγαίνετε για αυτό. ΚΟΙΝΟ: Αν παρενθέσεις s ισούται ισούται με μηδενική επιστροφή 0. ZAMYLA Chan: Ωραία. Λατρεύω όταν το ήμισυ το πρόβλημά σας είναι ακριβώς ο έλεγχος για μηδενική. Ξέρω ότι μαζί σας την τελευταία εβδομάδα ήμουν σαν έλεγχος για μηδενική κυριολεκτικά κάθε φορά. Εντάξει, so-- ΚΟΙΝΟ: Αν επιστροφή 0 είναι μόνο μία γραμμή, εμείς εξακολουθούμε να χρειαζόμαστε την σγουρά στήριγμα; ZAMYLA Chan: Δεν κάνουμε τεχνικά Πρέπει να τους όσο είστε συνεπείς. Είναι καλή πρακτική μόνο για να αποκτήσετε τη συνήθεια της χρησιμοποιώντας άγκιστρα, αλλά τεχνικά δεν υπάρχει. Δεν τους χρειάζεστε για μία γραμμή. Εμείς απλά έχουν την τάση να το συστήσω για ανθρώπους που ξεκινούν το πρόγραμμα. Και τώρα τι θα μπορούσε να θέλουμε να κάνουμε εδώ; Μέχρι τώρα γνωρίζουμε ότι χορδών μας είναι έγκυρη. Θέλουμε να κρατήσει υπολογίζουν το μήκος. Τι είναι ίσως η πρώτη πράγμα που θέλουμε να κάνουμε; ΚΟΙΝΟ: Δημιουργήστε ένα int αυτό είναι το μήκος. ZAMYLA Chan: Ακριβώς. ΚΟΙΝΟ: Και θέλουμε να το ρυθμίσετε να; ZAMYLA Chan: 0. Τέλεια. Εντάξει. Τώρα τι θέλουν να κάνουν; Αυτό είναι πραγματικά το μεγαλύτερο μέρος του. Πηγαίνετε για αυτό. ΚΟΙΝΟ: Έτσι πιθανόν να κάνετε ένα βρόχο for. Και στη συνέχεια, αφού όταν το ονομάσουμε είστε να πάρει τη διεύθυνση του πρώτου πράγμα, θα ξεκινήσει με το i ισούται με 0. Και τότε όσο x Πλέον έχω δεν είναι πίσω κάθετο 0. ZAMYLA Chan: Η μηδενική τερματισμού. ΚΟΙΝΟ: Η μηδενική τερματισμού. Στη συνέχεια, μπορείτε να προσθέσετε ένα στο μήκος. ZAMYLA Chan: Ναι. ΟΚ, οπότε ας τη σειρά του ότι σε πολύ συγκεκριμένο κώδικα. Αλλά αυτό είναι η τέλεια ιδέα. Αυτό είναι ακριβώς αυτό που κάνουμε. Εμείς πάμε για να την επανάληψη μέσω με το δείκτη. Έτσι, αυτό που θέλουμε να κάνουμε είναι αντί int εδώ, γιατί είμαστε δεν αναφέρομαι σε αυτό. Είμαστε αναφερόμενος στην έναρξη ενός κορδόνι, που ξεκινούν να κάποια διεύθυνση, σωστά; Έτσι θέλουμε ένα δείκτη. Έτσι θα πάμε να έχουν κάποιο αστέρι char, επειδή αντιστοιχεί στο s μας, σωστά; Έτσι, αυτό είναι κάποιο σημείο είμαστε αρχικοποίηση με την έναρξη του string, εντάξει; Οπότε ας το ονομάσουμε i. Αν αυτό είναι η αρχή του string, τι είναι αυτό που πρόκειται να ανατεθεί; Δεν 0. Θέλουμε να είναι η έναρξη της συμβολοσειράς μας. Τι αντιπροσωπεύει την έναρξη της συμβολοσειράς μας που μας δόθηκε; ΚΟΙΝΟ: Απλά s. ZAMYLA Chan: s. Έτσι, αυτό δημιουργεί κάποια νέα δείκτης ότι αντιπροσωπεύει την έναρξη των χορδών μας, εντάξει; Ένας άλλος τρόπος για να σκεφτώ αυτό είναι όπως εδώ είναι σειρά μας. Αυτό είναι το κορδόνι μας, s. Ας πούμε ότι αυτή είναι η πρώτο σημείο, και αυτό είναι 0x4. 04. Αυτό είναι s μας, η οποία κατέχει αυτή τη διεύθυνση. Και δημιουργήσαμε απλώς ένα άλλο που ονομάζεται i που αναφέρεται ακριβώς στο ίδιο πράγμα. Έτσι είναι και οι δύο απλά δείχνοντας από την έναρξη της συμβολοσειράς μας. Αυτό είναι απλά μια γραφική αναπαράσταση. Μέχρι τώρα αυτό που θέλουμε να κάνουμε είναι να θέλουμε να επαναλάβει κατάσταση μας για επανάληψη μέσω χορδών μας. Τώρα ψώνια. Πήρε να ψωνίσετε, παιδιά. Είναι θέλουμε να κρατήσουμε την ενημέρωση μέχρι φτάνουμε τη μηδενική τερματισμού, σωστά; Λοιπόν, τι θα μπορούσε αυτό να μοιάζει; Θέλουμε i, ή θέλουμε Star I είναι η ερώτηση; Είναι η μηδενική τερματισμού μια διεύθυνση ή κάτι που βρίσκεται σε μια διεύθυνση; Βρίσκεται σε μια διεύθυνση, σωστά; Έτσι χρειαζόμαστε dereference ό, τι είναι εδώ, γιατί αυτό είναι μόνο κάποια διεύθυνση. Για να πάρετε πραγματικά στην αρχή πρέπει να dereference αυτό έτσι ώστε να μπορέσουμε πραγματικά να πάρει τι είναι σε αυτή την πρώτη θέση. Έτσι, αν κάνουμε Star I, τι Δεν θέλουμε να ίσοι; ΚΟΙΝΟ: Επιστροφή κάθετο; ZAMYLA Chan: Εκεί. Μήπως αυτό έχει νόημα για όλους; Πρέπει να πάμε σε κορδόνι μας και βεβαιωθείτε ότι δεν είναι το τέλος. Και τότε μπορούμε απλά να ενημερώσετε σαν αυτό. Κανονική ενημέρωση. Έτσι, εφ 'όσον αυτά είναι ΚΟΑ, τι πρέπει να κάνουμε; ΚΟΙΝΟ: Μήκος συν συν. ZAMYLA Chan: MM-HM. Και στη συνέχεια, μετά το βρόχο για τερματίζεται, τι θέλουμε να επιστρέψουν; ΚΟΙΝΟ: Μήκος; ZAMYLA Chan: Μήκος. Εκεί θα πάτε. Προφανώς το κρέας αυτό είναι η κατανόηση αυτό για βρόχο. Μήπως ο καθένας να πάρει το πώς αυτό λειτούργησε; Είμαι στην ευχάριστη θέση να πάει πάνω του και πάλι. ΚΟΙΝΟ: Η δεύτερη μέρος, έτσι το αστέρι εγώ εκεί, αυτή είναι η διεύθυνση του first-- ZAMYLA Chan: Δεν είναι η διεύθυνση. Είναι αυτό που είναι σε. ΚΟΙΝΟ: Αυτό είναι πραγματικά εκεί. ZAMYLA Chan: Αυτό είναι τι είναι πραγματικά εκεί. Έτσι, αυτό είναι saying-- ας μου κάνουν αυτό το καλύτερο. Έτσι, αυτό είναι 0x04, και είμαι απλώς πρόκειται να πω ότι είμαι πρόκειται να κάνει αυτό το όνομα μου. ΟΚ. Ναι, ξέρω ότι έχω επανεξέταση κουίζ απόψε. Πολλά επανεξέταση κουίζ. Έτσι, ας πούμε αυτή τη σειρά είναι το όνομά μου, Allison. Μικρή βρώμικο, αλλά είναι εκεί. Και s αντιπροσωπεύει τη θέση από όπου ξεκινά η σειρά, έτσι Πάω να κάνουν αυτό real-- αυτή είναι η διεύθυνση ενός, όπου η σειρά ξεκινά, σωστά; Έτσι, αυτό που κάνουμε εδώ είναι που θέλουμε να χρησιμοποιούν δείκτες για να μετακινηθείτε μέσα. Έτσι δημιουργούμε κάποιο δείκτη, θ, που επίσης είναι ίση με την έναρξη της στοιχειοσειράς. Και σε κάθε σημείο, θέλουμε να συνεχίζουν να περάσει από τη συστοιχία εδώ μέχρι να χτυπήσει τη μηδενική τερματισμού. Έτσι, θέλουμε πάντα να ελέγξετε τι είναι σε κάθε μία από αυτές τις διευθύνσεις. Γι 'αυτό και dereference i, έτσι ώστε να η πρώτη φορά που το κάνουμε πω, εντάξει, ό, τι είναι στη διεύθυνση 0x04; Είναι ένα ένα. Εντάξει, είμαστε καλά. Αύξηση μήκους. Μετακίνηση στο επόμενο ένα. Έτσι i-- θυμάστε δείκτες αύξηση από το το μέγεθος του ό, από όπου και αν δείχνει να. Έτσι, στην περίπτωση αυτή, δεδομένου ότι είναι μια χαρα, αυτό θα ενημερώσετε με ένα. Έτσι τώρα θα πάμε να δούμε 5, πράγμα που σημαίνει ότι πρόκειται εδώ. Έτσι λέει εντάξει, πηγαίνετε στο 0x05. Τι είναι εκεί; Είναι ένα λίτρο. Και αυτό θα συνεχίσουμε να κάνουμε ότι μέχρι να χτυπήσει αυτό το ένα. Και λέει εντάξει, ό, τι είναι στην ανεξάρτητα από τη διεύθυνση είναι αυτό; Η μηδενική τερματισμού, ΟΚ. Έξοδος. Και μόνο το μήκος επιστρέψει. Γιατί θα πρέπει να έχετε ό, τι είναι στην πραγματικότητα σε ότι η διεύθυνση, η διεύθυνση δεν είναι το ίδιο. Υπάρχουν πολύ λίγα μέρη όπου θα πρέπει να έχετε πραγματικά τη διεύθυνση. Τις περισσότερες φορές, όταν είστε με τη χρήση του και είναι όταν είστε πρώτα εκχώρηση ενός δείκτη ή όταν είστε το πέρασμα σε μια άλλη λειτουργία. Εντάξει, όλοι καλά εκεί; Είδος του; ΟΚ. Έτσι φαίνεται σαν να έχουμε πήρε περίπου 12 λεπτά που απομένουν, έτσι θα πάμε για να ίσως την τελευταία μας πρόβλημα, και στη συνέχεια να υπάρχει κάποια έννοιες που έχουν έρθει μέχρι εν τω μεταξύ μπορούμε γρήγορα να πάει πέρα ​​από αυτό. Έτσι εναλλαγή εργαλείων είναι η τελευταία πρόβλημα εδώ, εναλλαγή καταστάσεων. Έτσι, η δουλειά σας είναι να ξαναγράψει αυτό έτσι ώστε να συμπεριφέρεται το ίδιο αλλά δεν χρησιμοποιεί διακόπτες. Αλευρώδεις χέρια. Έτσι, οποιεσδήποτε ερωτήσεις σχετικά με αυτό το ρόπαλο; Κανένας; ΟΚ. Μήπως όλοι καταλαβαίνουν ότι αν η περίπτωση που δεν έχει τίποτα μετά από αυτό, αυτό σημαίνει ότι θα πρέπει να ακολουθήστε το επόμενο βήμα; Έτσι, περίπτωση 1 και 2 στην περίπτωση αυτή κάνουν ακριβώς το ίδιο πράγμα. Μερικές φορές ένα σημείο της σύγχυσης. Εντάξει. Καθένας έχει οποιεσδήποτε ιδέες; Ναι; ΚΟΙΝΟ: Έτσι, μπορείτε να απλά κάνετε αν δηλώσεις. ZAMYLA Chan: MM-HM. Έτσι τι είναι πρώτη μας; ΚΟΙΝΟ: Αν n ισούται ισούται με 1, και οι 2 γραμμές για ή η ισούται με ισούται με 2, στη συνέχεια, εκτυπώστε μικρή. Και τότε μπορείς να κάνεις αλλιώς, αν; Ή μπορεί απλά να κάνει μια περίπτωση; ZAMYLA Chan: Μπορείτε να κάνετε αλλιώς, αν; ΚΟΙΝΟ: Θα έχει σημασία αν το κάνετε εάν; ZAMYLA Chan: Έτσι το κάνει. Μήπως anyone-- έτσι, σας θα πάρει το ίδιο αποτέλεσμα Αν χρησιμοποιήσετε μόνο IFS έναντι αν χρησιμοποιείτε άλλο IFS. Μπορώ να σας παιδιά σκεφτείτε το λόγο γιατί μπορεί να θέλετε να χρησιμοποιήσετε ένα άλλο εάν σε σχέση με πολλά IFS; Έχει να με αποτελεσματικότητα. Ναι; ΚΟΙΝΟ: Θα ελέγχει όλες οι IFS κάθε φορά. ZAMYLA Chan: Έτσι, ακόμη και αν χτύπησε αυτό το πρώτο, θα πάει στην επιταγή κάθε άλλο. Έτσι θέλετε να χρησιμοποιήσετε αν IFS άλλο σε περιπτώσεις όπου μόνο μία από αυτές θα εφαρμόζεται ποτέ. Έτσι αμοιβαίου αποκλεισμού είναι αυτό που έχουμε την τάση να πω. Εάν έχετε μια δέσμη των ΕΠΕΥ, αυτό σημαίνει ότι ίσως περισσότερες από μία από αυτές θέματα, και ίσως περισσότερο από ό, τι ένας από αυτούς μπορεί να είναι αλήθεια. Και θέλετε και τα δύο να εκτελέσει αν είναι αλήθεια. Αν θέλετε ένα από αυτά μόνο για να εργαστούν σε αυτές τις περιπτώσεις αλληλοαναιρούνται, θέλετε να χρησιμοποιήσετε άλλο εάν, λόγω όλα έχει να κάνει με την αποτελεσματικότητα. Ο κωδικός σας είναι απλά καλύτερα σχεδιασμένο αν κολλήσει σε αυτή την πρακτική. Έτσι, σε αυτή την περίπτωση θα έχουμε ένα άλλο αν. Και αυτό θα ήταν; ΚΟΙΝΟ: n ισούται ισούται με 3. ZAMYLA Chan: Τέλεια. Μέσο εκτύπωσης. Και στη συνέχεια, στην τελευταία μας περίπτωση, τι έχουμε; Αλλιώς ή αλλιώς αν; ΚΟΙΝΟ: άλλο. ZAMYLA Chan: εμείς want-- Θέλετε else if γιατί έχουμε συγκεκριμένες περιπτώσεις. Δεν είναι το είδος του συνόλου ενός αλιευμάτων. Αν είχατε μια προεπιλογή σε μια switch-- θυμηθείτε σε διακόπτες μπορείτε να έχετε περίπτωση, και, στη συνέχεια, έχετε προεπιλογή. Αν είχατε μια προεπιλογή, αυτό είναι το είδος από άλλο δήλωσή σας εκεί. Αλλά αν έχει μόνο περιπτώσεις, αυτό σημαίνει ότι θα πρέπει για να ελέγξετε για να δείτε αν είναι το καθένα από αυτά. Έτσι, σε αυτή την περίπτωση, θα ήταν η 4 ή 5. Θέλουμε μια εκτύπωση off. Είναι μεγάλη. Και εκεί θα πάτε. Και αυτό θα είναι το πρόγραμμά σας. Έτσι, σε αυτή την περίπτωση, αν εμείς είχε μια προεπιλογή κάτι, θα έχουμε ένα άλλο σε ό, τι ήθελε να κάνει. Έτσι, αυτό είναι μια καλή διάκριση να γνωρίζουν, να κατανοούν. Μήπως αυτό να βοηθήσει με διακόπτες για σας; Τέλεια. Εντάξει. Έχουμε περίπου οκτώ λεπτά που απομένουν. Μήπως εσείς έχετε οποιεσδήποτε άλλες έννοιες υψηλού επιπέδου; Ερωτήσεις σε γενικές γραμμές; Ναι; ΚΟΙΝΟ: Είχα μια ερώτηση σχετικά με ένα από αυτά ότι ήταν περίπου το τυχαίο γεννήτρια αριθμού για κουίζ μηδέν. ZAMYLA Chan: Ω, ότι το ένα. Εκείνο το ένα είναι ένα άλλο όπου είναι περισσότερο μαθηματικά than-- ναι. Η λύση για να that-- ακόμα και εγώ όταν Το βλέπω εγώ, είμαι σαν τι είναι αυτό. ΚΟΙΝΟ: Ήταν αριθμό 7. ZAMYLA Chan: Είναι παράξενο, κατά τη γνώμη μου. Έτσι, βασικά θέλετε να χρησιμοποιούν drand48, η οποία Θα σας δώσω μερικά αριθμός μεταξύ 0 και 1. Και θέλετε να το χρησιμοποιήσετε έτσι ότι έχετε κάποιο τρόπο να πάρει a-- και αυτό είναι πολύ περισσότερο από ένα μαθηματικό πρόβλημα για μένα από ό, τι νομίζω ότι ένα πρόβλημα CS. Ο τρόπος που το κάνετε και it-- Μερικές φορές αυτό ακριβώς θα είναι σαν αυτό. Και πάλι, αυτά είναι τα περιπτώσεις όπου το είδος της, όπως γράφουν ό, τι μπορεί και μερική πίστωση. Έτσι, αν θέλουμε μια επιστροφή, ξέρουμε ότι είμαστε πρόκειται να χρησιμοποιούν drand48 κατά κάποιο τρόπο, σωστά; Έτσι, γιατί δεν μπορούμε απλά σημειώνω ότι προς τα κάτω. Είμαστε το χρησιμοποιείτε με κάποιο τρόπο. Ο τρόπος που έχουν εσείς χρησιμοποιείτε είναι όπως αυτό, το οποίο θα προσπαθήσω να εξηγήσω. Έτσι, βασικά αυτό που συμβαίνει εδώ είναι επειδή είναι μεταξύ 0 και 1, τι κάνετε είναι είστε πολλαπλασιασμό by-- αυτό είναι πάρα πολύ μια ερώτηση μαθηματικών. Απλά πλήρη αποκήρυξη, αυτό είναι εντελώς μια ερώτηση μαθηματικών. Αυτό που κάνετε είναι λόγω του 0 και 1 και θέλουν να είναι μέσα αυτό το εύρος, μπορείτε πραγματικά καταλάβω πόσο μεγάλο το εύρος είναι, και στη συνέχεια μπορείτε βασικά να κλιμακωθούν, το οποίο είναι αυτό που κάνει. β μείον ένα που δίνει το εύρος αυτό, η διαφορά μεταξύ αυτών των αριθμών. Μπορείτε να πολλαπλασιαστούν μεταξύ 0 και 1, και στη συνέχεια προσθήκη ενός μόνο σημαίνει ότι σας το κλιμάκωση έτσι ώστε να είναι μεταξύ Α και Β, που δεν μου άρεσε πραγματικά αυτό το πρόβλημα. Όπως είπα, αυτό το κουίζ εννοείται ότι συμπεριλαμβάνει οι άνθρωποι που είναι λιγότερο άνετα, κάπου στο μεταξύ, και πιο άνετα. Έτσι, αν το έκανε έτσι ότι ήταν κάτι ότι ο καθένας στο λιγότερο άνετο μέρος θα πάρει, θα έχουμε πάρα πολλές άνθρωποι σκοράροντας τελειοποιεί, και η πιο άνετα θα βαρεθεί. Έτσι έχουν πάντα αυτά το είδος του εγκεφάλου ερωτήσεις τρέιλερ που είναι γραφτό να είναι λίγο πιο δύσκολο ότι λαμβάνουν κάποια δημιουργική σκέψη. Όταν τους βλέπετε, δεν παίρνουν πάρα μείνει άναυδοι. Θα έλεγα σίγουρα πορτάκι μέσω κουίζ σας πρώτα. Αντιμετωπίστε τα προβλήματα ότι ξέρετε μπορείτε, γιατί δεν υπάρχει καμία χρήση να κολλήσει σε ένα πρόβλημα, όταν υπάρχουν τρεις ή τεσσάρων ή πέντε στη σελίδα μετά από αυτό μπορείτε εύκολα να το κάνετε. ΚΟΙΝΟ: Γιατί ακριβώς κάνετε πολλαπλασιάζουμε με το εύρος; ZAMYLA Chan: Θα πολλαπλασιάσει την περιοχή που Σας know-- είναι σαν το πόσο μετά από μια θέλεις; Έτσι, μπορείτε να σκεφτείτε, επειδή επιστρέφει έναν αριθμό μεταξύ 0 και 1, μπορείτε να σκεφτείτε από το ως ένα ποσοστό. Έτσι είναι βασικά λέγοντας ότι αν έχουμε γραμμή αριθμός μας εδώ, ένα είναι εδώ, και β είναι εδώ. Είσαι σαν το πόσο παρελθόν ένα είναι αυτό; Είναι όλοι κάνουμε. Έτσι, είστε ακριβώς ζητά για το ποσοστό της περιοχής αυτής, η οποία είναι αυτό που θα σας δίνει. Και τότε ουσιαστικά μόνο κλίμακα επάνω με την προσθήκη ενός. Είναι ένα teaser μαθηματικά εγκέφαλο. Αν υπήρχε κάποια τελευταία συμβουλή λεπτό, Θα έλεγα κτύπημα μέσα από τις ερωτήσεις, καταλάβω ποια σας γνωρίζουμε ότι, όπως, oh πήρα αυτό. Σχεδόν σίγουρα θα πάμε για να είναι ερωτήματα που δεν θα ξέρετε ή ότι θα πάμε για να έχουν το χρόνο για, έτσι ώστε να χτυπήσει δυνατά σας, εντάξει; Οι Εσείς πρόκειται να μεγάλη. Υπάρχουν πολλά ερωτήσεις για έναν λόγο, έτσι ώστε να έχετε χρόνο να το είδος της έχουν την ευκαιρία να αποδείξει τι είστε πραγματικά καλοί. Γι 'αυτό είναι εντάξει εάν είστε δεν είναι καλή σε όλα. Παίξτε στις δυνάμεις σας. Ναι; ΚΟΙΝΟ: Έτσι είναι αυτό πρόκειται να κάτι που έχει περικοπεί επιστρέψει; Ναι, θα, επειδή drand αποδόσεις μεταξύ 0 και 1. Θα επιστρέψει ένα int, γιατί αυτό θα περικόψει όταν προσθέτουμε ένα ή πολλαπλασιάζεται με αυτό. Cool. Όλες οι τελευταίες ερωτήσεις λεπτό; Οι Εσείς πρόκειται να κάνει μεγάλη. Θα πάμε για να είναι υπέροχη. Και ακόμα κι αν δεν είναι, θα υπάρχει είναι καραμέλα εδώ την επόμενη εβδομάδα. Και εγώ θα σ 'αγαπώ. Θα σ 'αγαπώ παιδιά ανεξάρτητα. Εντάξει, ο καθένας, καλή τύχη. Έχετε ένα μεγάλο χρονικό διάστημα. Θα πάμε να είναι μια χαρά. Και ξέρετε τι; Σε δύο μέρες πρόκειται να είναι πάνω, ενώ εγώ έχουν δύο εξετάσεις προόδου την Πέμπτη, οπότε τουλάχιστον εσείς θα γίνει. Εντάξει, εγώ θα σας δούμε παιδιά την επόμενη εβδομάδα.