Ένα δείκτη αντικειμένου , ή απλά το δείκτη , είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης όπου ένα αντικείμενο , όπως ένα struct ή float , ή μια σειρά από αντικείμενα , είναι αποθηκευτεί. Με αυτή την διεύθυνση μνήμης , ο προγραμματιστής μπορεί να διαβάσει , να τροποποιήσετε και να κινηθούν μέσω της μνήμης χρησιμοποιώντας ένα δείκτη .
Η Οφέλη
Η
Λειτουργίες που λαμβάνουν ένα δείκτη σε μια εξωτερική αντικείμενο πέρασε ως παράμετρος μπορεί να τροποποιήσει αυτό το αντικείμενο . Όταν η λειτουργία βγαίνει , η νέα τιμή που αποδίδεται σε αυτό το αντικείμενο θα συνεχιστεί . Μια συνάρτηση μπορεί να πάρει πολλούς δείκτες , επιτρέποντας μια ενιαία συνάρτηση να αλλάξει πολλά αντικείμενα με μία κλήση .
Ένας δείκτης μπορεί να χρησιμοποιηθεί για να περιηγηθείτε μέσα από μια σειρά από στοιχεία που συστηματικά ή τυχαία σειρά , χρησιμοποιώντας συμβολισμό , ή επανάληψη βασικών μαθηματικών . Χρησιμοποιώντας δείκτες για την πρόσβαση συστοιχία είναι ταχύτερη από ό, τι τα πιο περίπλοκα εφαρμογές παρόμοιων λειτουργιών που βρέθηκαν σε άλλες γλώσσες . Ενώ αυτές οι εφαρμογές είναι συχνά πιο εύκολο στη χρήση και την αποφυγή σφαλμάτων , υπάρχει πρόσθετη επιβάρυνση που επηρεάζει την απόδοση .
Εικόνων Σημασία
Η
Η ικανότητα να κατανέμει δυναμικά τους αυθαίρετες ποσότητες μνήμης σωρού κατά τη διάρκεια της χρόνου εκτέλεσης είναι μια τεχνική που ονομάζεται « δυναμική κατανομή μνήμης . " Πολλές παλαιότερες γλώσσες , όπως η Fortran , απαιτείται το ποσό της μνήμης που διατίθεται για τις δομές , όπως πίνακες που θα καθοριστούν κατά τη μεταγλώττιση, και το ποσό της μνήμης που εκχωρείται δεν μπορεί να αλλάξει κατά τη διάρκεια της λειτουργίας του προγράμματος . Δείκτες που χρησιμοποιούνται σε C για να κρατήσει τη διεύθυνση του δυναμικά εκχωρημένη μνήμη .
Εικόνων Χρήση
Η
Ένας δείκτης δηλώνεται με την τοποθέτηση ενός αστέρι ( * ) ανάμεσα στο όνομα και τον τύπο του όνομα μεταβλητής .
Η αξία ενός αντικειμένου στη μνήμη , στη διεύθυνση που κατέχονται από τον δείκτη είναι προσβάσιμο από " dereferencing " το δείκτη . Έμμεση αναφορά σε ένα δείκτη γίνεται με την τοποθέτηση ένα αστέρι ( * ) μπροστά από το όνομα του δείκτη
Κατά το χειρισμό δείκτες σε Δομές , μέλος του struct γίνεται αναφορά χρησιμοποιώντας ένα βέλος . ( - > ) Ανάμεσα στο όνομα και το δείκτη το όνομα μέλους .
η διεύθυνση ενός αντικειμένου μπορεί να προσεγγιστεί με την τοποθέτηση ένα εμπορικό και ( & ) πριν από το όνομα της μεταβλητής του αντικειμένου . Περνώντας τη διεύθυνση ενός αντικειμένου σε μια λειτουργία που ονομάζεται " περνούν με αναφορά . " Η παράμετρος έχει δηλωθεί ως δείκτη στο πρωτότυπο της συνάρτησης . Η λειτουργία dereferences την παράμετρο να τροποποιήσει την αξία του , και η τιμή θα εξακολουθήσει να υφίσταται όταν η λειτουργία βγαίνει . Οι
πίνακες που δημιουργούνται από την κατανομή του ποσού της μνήμης που απαιτείται για να κρατήσει τον επιθυμητό αριθμό των αντικειμένων ενός συγκεκριμένου τύπου . Αυτό επιτυγχάνεται κατά τη διάρκεια ή μετά τη δήλωση με το δείκτη σημειογραφία και malloc ή calloc , ή κατά τη διάρκεια δήλωση με το συμβολισμό πίνακα. Στοιχεία ενός πίνακα μπορεί να προσεγγιστεί με το συμβολισμό αναφοράς του δείκτη ή με την επανάληψη του δείκτη πίνακα . Επανάληψη αυξάνει αυτόματα ή μειώνει τη διεύθυνση από το μέγεθος ενός μεμονωμένου στοιχείου , ώστε ο δείκτης έχει τοποθετηθεί σωστά στην αρχή του επόμενου ή του προηγούμενου στοιχείου .
Εικόνων Προειδοποίηση
Η
μνήμης κατανομή και ανακατανομή διοικείται από τον προγραμματιστή . Η μνήμη που έχει διατεθεί πρέπει να deallocated όταν δεν είναι πλέον απαραίτητη . Η αποτυχία να βρω τον ιδιοκτήτη της μνήμης εμποδίζει από το να χρησιμοποιούνται μέχρι τις εξόδους εφαρμογής . Μια « διαρροή μνήμης » συμβαίνει όταν μια αναφορά στην κατανεμημένη μνήμη χάνεται χωρίς να απελευθερώνει τη μνήμη πρώτα. Διαρροές μνήμης μπορεί να συμβεί όταν ένας δείκτης είναι εκ νέου , ή μια λειτουργία εξέρχεται χωρίς να αναθέτει την κυριότητα της χορηγούμενης μνήμης .
Πρόσβαση μνήμη πέρα από το τέλος του δεσμευμένου μνήμης είναι ένα κοινό λάθος όταν εργάζεστε με πίνακες . Ονομάζεται αυτό το σφάλμα με " ευρετήριο πίνακα εκτός ορίων ». Αυτό μπορεί να προκαλέσει η εφαρμογή να συμπεριφέρεται λανθασμένα ή μη αναμενόμενη έξοδο .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα