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

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

Τι είναι ένας δείκτης στην C

; Ένα από τα χαρακτηριστικά που κάνει την C μια τέτοια ισχυρή γλώσσα προγραμματισμού είναι η δυνατότητα για τους προγραμματιστές να έχουν πρόσβαση μνήμης απευθείας χρησιμοποιώντας δείκτες . Δείκτες που χρησιμοποιούνται ευρέως σε C ​​για χειρισμό των πινάκων δεδομένων , το χειρισμό strings χαρακτήρα , πέρασμα παραμέτρων με τις λειτουργίες και τη δημιουργία συνδεδεμένων λιστών και άλλων πολύπλοκων δομών δεδομένων . Δείκτες είναι μία από τις μεγαλύτερες πηγές της σύγχυσης για τους προγραμματιστές νέα για τη γλώσσα C . Η κατανόηση και η χρήση δεικτών είναι ζωτικής σημασίας για την αποτελεσματική προγραμματισμού C .
Pointer δείκτη : Φροντίστε να καθαρίσει !
Η Λειτουργία
Η

Ένα δείκτη αντικειμένου , ή απλά το δείκτη , είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης όπου ένα αντικείμενο , όπως ένα struct ή float , ή μια σειρά από αντικείμενα , είναι αποθηκευτεί. Με αυτή την διεύθυνση μνήμης , ο προγραμματιστής μπορεί να διαβάσει , να τροποποιήσετε και να κινηθούν μέσω της μνήμης χρησιμοποιώντας ένα δείκτη .

Η Οφέλη
Η

Λειτουργίες που λαμβάνουν ένα δείκτη σε μια εξωτερική αντικείμενο πέρασε ως παράμετρος μπορεί να τροποποιήσει αυτό το αντικείμενο . Όταν η λειτουργία βγαίνει , η νέα τιμή που αποδίδεται σε αυτό το αντικείμενο θα συνεχιστεί . Μια συνάρτηση μπορεί να πάρει πολλούς δείκτες , επιτρέποντας μια ενιαία συνάρτηση να αλλάξει πολλά αντικείμενα με μία κλήση .

Ένας δείκτης μπορεί να χρησιμοποιηθεί για να περιηγηθείτε μέσα από μια σειρά από στοιχεία που συστηματικά ή τυχαία σειρά , χρησιμοποιώντας συμβολισμό , ή επανάληψη βασικών μαθηματικών . Χρησιμοποιώντας δείκτες για την πρόσβαση συστοιχία είναι ταχύτερη από ό, τι τα πιο περίπλοκα εφαρμογές παρόμοιων λειτουργιών που βρέθηκαν σε άλλες γλώσσες . Ενώ αυτές οι εφαρμογές είναι συχνά πιο εύκολο στη χρήση και την αποφυγή σφαλμάτων , υπάρχει πρόσθετη επιβάρυνση που επηρεάζει την απόδοση .
Εικόνων Σημασία
Η

Η ικανότητα να κατανέμει δυναμικά τους αυθαίρετες ποσότητες μνήμης σωρού κατά τη διάρκεια της χρόνου εκτέλεσης είναι μια τεχνική που ονομάζεται « δυναμική κατανομή μνήμης . " Πολλές παλαιότερες γλώσσες , όπως η Fortran , απαιτείται το ποσό της μνήμης που διατίθεται για τις δομές , όπως πίνακες που θα καθοριστούν κατά τη μεταγλώττιση, και το ποσό της μνήμης που εκχωρείται δεν μπορεί να αλλάξει κατά τη διάρκεια της λειτουργίας του προγράμματος . Δείκτες που χρησιμοποιούνται σε C για να κρατήσει τη διεύθυνση του δυναμικά εκχωρημένη μνήμη .
Εικόνων Χρήση
Η

Ένας δείκτης δηλώνεται με την τοποθέτηση ενός αστέρι ( * ) ανάμεσα στο όνομα και τον τύπο του όνομα μεταβλητής .

Η αξία ενός αντικειμένου στη μνήμη , στη διεύθυνση που κατέχονται από τον δείκτη είναι προσβάσιμο από " dereferencing " το δείκτη . Έμμεση αναφορά σε ένα δείκτη γίνεται με την τοποθέτηση ένα αστέρι ( * ) μπροστά από το όνομα του δείκτη

Κατά το χειρισμό δείκτες σε Δομές , μέλος του struct γίνεται αναφορά χρησιμοποιώντας ένα βέλος . ( - > ) Ανάμεσα στο όνομα και το δείκτη το όνομα μέλους .

η διεύθυνση ενός αντικειμένου μπορεί να προσεγγιστεί με την τοποθέτηση ένα εμπορικό και ( & ) πριν από το όνομα της μεταβλητής του αντικειμένου . Περνώντας τη διεύθυνση ενός αντικειμένου σε μια λειτουργία που ονομάζεται " περνούν με αναφορά . " Η παράμετρος έχει δηλωθεί ως δείκτη στο πρωτότυπο της συνάρτησης . Η λειτουργία dereferences την παράμετρο να τροποποιήσει την αξία του , και η τιμή θα εξακολουθήσει να υφίσταται όταν η λειτουργία βγαίνει . Οι

πίνακες που δημιουργούνται από την κατανομή του ποσού της μνήμης που απαιτείται για να κρατήσει τον επιθυμητό αριθμό των αντικειμένων ενός συγκεκριμένου τύπου . Αυτό επιτυγχάνεται κατά τη διάρκεια ή μετά τη δήλωση με το δείκτη σημειογραφία και malloc ή calloc , ή κατά τη διάρκεια δήλωση με το συμβολισμό πίνακα. Στοιχεία ενός πίνακα μπορεί να προσεγγιστεί με το συμβολισμό αναφοράς του δείκτη ή με την επανάληψη του δείκτη πίνακα . Επανάληψη αυξάνει αυτόματα ή μειώνει τη διεύθυνση από το μέγεθος ενός μεμονωμένου στοιχείου , ώστε ο δείκτης έχει τοποθετηθεί σωστά στην αρχή του επόμενου ή του προηγούμενου στοιχείου .
Εικόνων Προειδοποίηση
Η

μνήμης κατανομή και ανακατανομή διοικείται από τον προγραμματιστή . Η μνήμη που έχει διατεθεί πρέπει να deallocated όταν δεν είναι πλέον απαραίτητη . Η αποτυχία να βρω τον ιδιοκτήτη της μνήμης εμποδίζει από το να χρησιμοποιούνται μέχρι τις εξόδους εφαρμογής . Μια « διαρροή μνήμης » συμβαίνει όταν μια αναφορά στην κατανεμημένη μνήμη χάνεται χωρίς να απελευθερώνει τη μνήμη πρώτα. Διαρροές μνήμης μπορεί να συμβεί όταν ένας δείκτης είναι εκ νέου , ή μια λειτουργία εξέρχεται χωρίς να αναθέτει την κυριότητα της χορηγούμενης μνήμης .

Πρόσβαση μνήμη πέρα ​​από το τέλος του δεσμευμένου μνήμης είναι ένα κοινό λάθος όταν εργάζεστε με πίνακες . Ονομάζεται αυτό το σφάλμα με " ευρετήριο πίνακα εκτός ορίων ». Αυτό μπορεί να προκαλέσει η εφαρμογή να συμπεριφέρεται λανθασμένα ή μη αναμενόμενη έξοδο .
Η
εικόνων

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

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