Καταλάβετε ότι οι μεταβλητές δείκτη μνήμης δείχνουν πάντα με τα στοιχεία ενός συγκεκριμένου τύπου . Για παράδειγμα , ένας δείκτης σε int είναι διαφορετικό από ένα δείκτη σε char . Ωστόσο, η C δεν θα σας εμποδίσει από ελεύθερα αναμίξεως αυτών . Να το πράξουν μόνο αν είστε σίγουροι ότι ξέρετε τι κάνετε . 2
Δημιουργήστε μια μεταβλητή δείκτη μνήμης χρησιμοποιώντας τη σύνταξη που θα χρησιμοποιήσετε για να δημιουργήσετε μια μεταβλητή του επιθυμητού τύπου , αλλά με ένας αστερίσκος ( *) μπροστά από το όνομα της μεταβλητής , όπως αυτό :
int * x ?
Η 3Εξετάστε NULL . Οι δείκτες μπορούν πάντα να είναι NULL ( 0 ) , και αυτό συνήθως χρησιμοποιείται για να αναφερθεί σε ένα δείκτη που δεν έχει οριστεί ακόμα να επισημάνω οπουδήποτε.
Εικόνων αναφοράς και Αποαναφορά
Η 4Γνωρίστε Referencing . Αναφορά σε
αναφέρεται στη διαδικασία εύρεσης του δείκτη σε μια υπάρχουσα μεταβλητή . Στη C , ο χειριστής συσχέτισης είναι το εμπορικό και ( & ) . Για παράδειγμα :χρώμα int = 5 ? Int * pointer_to_color ? Pointer_to_color = &color;
5Χρησιμοποιήστε αποαναφοράς . Έμμεση αναφορά
είναι η διαδικασία μετά από ένα δείκτη για την αξία του , το αντίθετο του αναφορά . Στη C ο αστερίσκος ( * ) χρησιμοποιείται για την εύρεση τιμών , ως εξής :printf ( " Το χρώμα είναι % d \\ n" , * pointer_to_color ) ? /* Εκτυπώσεις 5 * /
Η χρήση μνήμης Pointer Μεταβλητές
6Περάστε σε ένα δείκτη προς τη μεταβλητή όταν χρειάζεστε μια λειτουργία για να είναι σε θέση να αλλάξει μια μεταβλητή , αντί να διέρχεται τιμή της μεταβλητής . Αυτό επιτρέπει τη χρήση της λειτουργίας dereferencing να αλλάξετε την τιμή :
ακυρώσει convert_color_to_RGB (χρώμα int , int * κόκκινο , int * πράσινο , int * μπλε) { * κόκκινο = redpart ( χρώμα) ? * Πράσινο = greenpart ( χρώμα) ? * μπλε = bluepart (χρώμα ) ? } convert_color_to_RGB ( 15 , & myred , & mygreen , και myBlue ) ? Σελίδα 7εργασίας γύρω από τα όρια Γ . Κάθε φορά που θέλετε να περάσετε μια σειρά ή δομή σε λειτουργία , θα πρέπει να περάσει ένα δείκτη και όχι γιατί η C επιτρέπει μόνο και μόνο τύπους δεδομένων που πρέπει να περάσει σε λειτουργίες :
int υποσύνολο ( int * σκορ , int howMany ) { int total = 0 , i ? για ( i = 0 ? i επιστρέψει συνολικά? } Τετάρτη 8Δημιουργήστε μια θηλιά από χορδές είναι πραγματικά συστοιχίες των χαρακτήρων , μπορείτε να δημιουργήσετε ένα δείκτη σε ένα χαρακτήρα να βρόχο μέσω μιας σειράς : <προ . > άκυρη replace_character ( char * s , char από , χαρακτήρα και να ) { char * cp ? για ( cp = s ? cp && * cp ? κθ + + ) if ( * cp == από ) * cp = να? }
9Κατανοήστε τις συστοιχίες θέα τρόπο C . οι σειρές χειρίζεται C ως δείκτες , με τη χρήση αριθμητικής δεικτών . C θα πολλαπλασιαστούν αυτόματα ό, τι μπορείτε να προσθέσετε ένα δείκτη από το μέγεθος των στοιχείων που δείχνει . αυτό σημαίνει
σκορ [ 5 ] = 17 ? είναι ακριβώς το ίδιο όπως* ( σκορ + 5 ) = 17 ? . Μπορείτε να χρησιμοποιήσετε δείκτες ως συντομογραφία για dereferences σειρά για παράδειγμα ,* σκορ = 17 ? . αναφέρεται πάντα η 0th στοιχείο του πίνακα .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα