Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να δημιουργήσετε ένα δείκτη μνήμης σε C

C κάνει εκτεταμένη χρήση των pointers μνήμης για το χειρισμό των πινάκων , κλήσεις συναρτήσεων , δομές δεδομένων και πολλά άλλα . Γνωρίζοντας πώς να συνεργαστεί άμεσα με τους pointers είναι το κλειδί για την αποτελεσματική κωδικοποίηση C . Οδηγίες
Δημιουργία μνήμης Pointer Μεταβλητές
Η 1

Καταλάβετε ότι οι μεταβλητές δείκτη μνήμης δείχνουν πάντα με τα στοιχεία ενός συγκεκριμένου τύπου . Για παράδειγμα , ένας δείκτης σε 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 στοιχείο του πίνακα . 
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα