Ποιο είναι το μειονέκτημα της χρήσης pointers στην C;

  • Thread starter sundarmeenakshi
  • Start date
S

sundarmeenakshi

Guest
ΤΙ ΕΙΝΑΙ Το μειονέκτημα της pinters σε C
 
το ένα μειονέκτημα που ξέρω είναι ότι αν κάνετε κάποιο λάθος κατά τον χειρισμό δείκτες μπορεί να οδηγήσει ακόμη και στην κατάρρευση του συστήματος σας ....
 
sundarmeenakshi, Οι πιο ύπουλη λάθη συμβαίνουν με uninitialized δείκτες. Ας υποθέσουμε ότι ένας δείκτης έχει κάποια τυχαία τιμή. Μπορείτε αποθηκεύουν τα δεδομένα και να ανακτήσετε χρησιμοποιώντας το δείκτη. 1) * = x δείκτη. 2) x = * δείκτη. Αυτό λειτουργεί καλά για όσο διάστημα η (τυχαία) διεύθυνση αντιπροσωπεύεται από το δείκτη δεν χρησιμοποιείται για τίποτα άλλο. Εάν η διεύθυνση αυτή χρησιμοποιείται για κάτι άλλο, στη συνέχεια, ότι δεδομένων (ή χρήσης) στην τοποθεσία αντιπροσωπεύεται από το δείκτη θα καταστραφεί από την εκτέλεση της εντολής 1 ανωτέρω. Τώρα, εδώ έρχεται το μέρος διασκέδασης: Ας υποθέσουμε ότι εισάγετε μια δήλωση printf για να προσπαθήσει να διορθώσετε το πρόβλημα. Μετά recompilation, η τυχαία διεύθυνση αντιπροσωπεύεται από το δείκτη χρησιμοποιείται για να κρατήσει ένα άλλο κομμάτι των δεδομένων ή εντολών, και το αρχικό πρόβλημα εξαφανίζεται, μόνο για να επανεμφανιστεί κάπου αλλού στο πρόγραμμά σας. . Η χρήση των δεικτών requries πειθαρχία. Ο νούμερο ένα κανόνας είναι "aways αρχικοποίηση δείκτες". Αν είστε τυχεροί, συμμορφούμενος σας θα προετοιμάσει την αξία δείκτη null (μηδέν), η οποία θα οδηγήσει σε ένα σφάλμα χρόνου εκτέλεσης σε περισσότερα περιβάλλοντα. Regards, Kral
 
Thier θα είναι τα μειονεκτήματα των δεικτών, αν δεν τα χειρίζεται σωστά. Και σε ορισμένες περιπτώσεις μπορεί να μην είναι εύκολο για τον εντοπισμό σφαλμάτων.
 
είναι εύκολο να καταλάβει, αλλά να μην χρησιμοποιούν σωστά. αν δίνετε ένα struct σε μια παράμετρο της λειτουργίας και αν η struct είναι μεγάλη, χρησιμοποιώντας ένα δείκτη που θα χρησιμοποιούν λιγότερη μνήμη για το πρόγραμμα, που τρέχει πιο γρήγορα. το ίδιο συμβαίνει και με τους πίνακες. Νομίζω δείκτες είναι απαραίτητη για έναν προγραμματιστή, λόγω της ταχύτητας και μεγέθους.
 
Οι δείκτες είναι πολύ ισχυρό επιτρέποντάς σας να γράψετε γρήγορα και αποδοτικό κώδικα. Είναι ένα από τα δυνατά σημεία της γλώσσας C. C κώδικα χωρίς δείκτες είναι σαν μπύρα χωρίς alcahol, την αφθονία του σώματος, αλλά δεν oomph. Δεν υπάρχουν μειονεκτήματα για δείκτες στο C.
 
θα ήθελα συμβουλές btbass να ρίξετε μια ματιά μέσα σε ό, τι βιβλίο σπουδάζει .... όταν ένας δείκτης δεν είναι σωστά ή intialised διαχειριστούμε σωστά, μπορείτε να είστε σίγουροι ότι κάτι κακό θα συμβεί σε ur υπολογιστή .... ένα πρόγραμμα υποτίθεται ότι είναι ασφαλές κάτω από όλες τις περιστάσεις ....
 
αν ο δείκτης έχει αρχίσει να δείχνει προς το σύστημα δεσμευμένη μνήμη, τότε μπορεί να προκαλέσει αστάθεια sytem. όπως τα παράθυρα έχει μια συγκεκριμένη περιοχή στη RAM προορίζεται για λειτουργικό σύστημα, εάν ένας δείκτης κάνει cahnges σε αυτόν τον τομέα, τότε θα είναι ένας ιός σαν λειτουργία. όπως κάποιοι αστεία πράγματα ανοίξει cd rom μας, αυτό είναι μόνο από αυτή την περιοχή
 
Είναι εξίσου εύκολο να βίδα μέχρι οποιαδήποτε πτυχή του προγράμματος, με τη χρήση unintialised μεταβλητές, ανάμειξη προσημασμένες ακέραιοι, δεν αλίευση εξαιρέσεις, οι δείκτες δεν είναι εύκολο να βίδα μέχρι από οποιοδήποτε άλλο χαρακτηριστικό. Δείκτες σας βοηθήσει να γράψετε το κομψό αποδοτικό κώδικα. Όταν γράφω ένα πρόγραμμα για υπολογιστή, μπορώ να χρησιμοποιήσω γ #, μια σύγχρονη γλώσσα προγραμματισμού που ξεπερνά πολλές από τις παραλείψεις που είναι εύκολο να χάσετε. Αλλά ένα μεγάλο κομμάτι του προγραμματισμού περιλαμβάνει 8 bit micros, και C είναι βασιλιάς για αυτό το είδος της εφαρμογής. Χρησιμοποιώ επίσης στατική ανάλυση του κωδικού μου με πανί. Lint θα βρείτε όλα τα είδη των σκοτεινών σφάλματα. Εάν ο κωδικός σας είναι συντρίβεται εξαιτίας της μη αρχικοποιημένη δείκτες, δηλαδή δεν είναι το σφάλμα της C! Αλλά η έλλειψη σας του ορθή διεξαγωγή των δοκιμών. Χρησιμοποιώντας δείκτες θα πρέπει να ενθαρρύνονται, δίνουν γ άκρη του.
 
Θα πρέπει επίσης να βεβαιωθείτε ότι έχετε αναφοράς και dereference propoerly τους, αλλιώς θα σας χρησιμοποιώντας τη διεύθυνση αντί για τα δεδομένα.
 

Welcome to EDABoard.com

Sponsor

Back
Top