Ένας ουσιαστικός οδηγός για δείκτες στον προγραμματισμό C

Ένας ουσιαστικός οδηγός για δείκτες στον προγραμματισμό C
Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Οι δείκτες είναι μια ουσιαστική πτυχή του προγραμματισμού C που θα χρειαστείτε καλή κατανόηση για να χρησιμοποιήσετε τη γλώσσα αποτελεσματικά. Βοηθούν στην αποτελεσματική διαχείριση της μνήμης, τη μετάδοση δεδομένων μέσω αναφοράς, το χειρισμό πινάκων και συμβολοσειρών και πολλά άλλα. Ωστόσο, απαιτούν προσεκτική χρήση για την αποφυγή σφαλμάτων.





MUO Το βίντεο της ημέρας ΚΥΛΙΣΤΕ ΓΙΑ ΝΑ ΣΥΝΕΧΙΣΕΤΕ ΜΕ ΠΕΡΙΕΧΟΜΕΝΟ

Εξερευνήστε τις λεπτομέρειες των δεικτών C, από την κατανόηση της μνήμης και των διευθύνσεων έως τον έλεγχο της αριθμητικής του δείκτη.





Μνήμη και Διευθύνσεις

  Κοντινό πλάνο ενός εσωτερικού τμήματος υπολογιστή.

Μνήμη—συχνά χρησιμοποιείται ως συντομογραφία RAM (Μνήμη τυχαίας πρόσβασης) — είναι ο χώρος αποθήκευσης σε έναν υπολογιστή που περιέχει τα δεδομένα και τις οδηγίες που χρειάζεται ένα πρόγραμμα για να εκτελεστεί. Λειτουργεί ως χώρος εργασίας για το πρόγραμμά σας. Η μικρότερη μονάδα μνήμης είναι συνήθως ένα byte, το οποίο ισούται με οκτώ bit.





Κάθε θέση μνήμης έχει μια μοναδική διεύθυνση και μπορεί να αποθηκεύσει διαφορετικό όγκο δεδομένων ανάλογα με τον υπολογιστή. Όταν δηλώνετε μια μεταβλητή στο C, της εκχωρείτε σιωπηρά μια θέση μνήμης για την αποθήκευση των δεδομένων της. Σκεφτείτε το σαν ένα σπίτι, το οποίο έχει μια μοναδική διεύθυνση που μπορείτε να χρησιμοποιήσετε για να το εντοπίσετε.

Φανταστείτε τη μνήμη του υπολογιστή σας ως μια ακολουθία κελιών αποθήκευσης, που το καθένα περιέχει ένα byte δεδομένων. Ας πούμε ότι υπάρχουν δύο μεταβλητές, Χ και και , σε πρόγραμμα C:



 int x = 5; 
int y = 10;

Στη μνήμη, μπορεί να μοιάζει με αυτό:

1000





5

γιατί το τηλέφωνό μου συνεχίζει να λέει ότι αυτό το αξεσουάρ μπορεί να μην υποστηρίζεται

1004





πώς να εκτελέσετε ένα διαγνωστικό στα Windows 10

10

Εδώ, χωριστές θέσεις μνήμης αποθηκεύουν αυτές τις μεταβλητές. Τα δεδομένα που Χ αντιπροσωπεύει βρίσκεται στη διεύθυνση μνήμης 1000, ενώ και Τα δεδομένα του καταλαμβάνουν τη διεύθυνση μνήμης 1004.

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

Δήλωση και αρχικοποίηση δεικτών στο C

Για να μπορέσετε να τροποποιήσετε δεδομένα χρησιμοποιώντας δείκτες στο C, πρέπει να τα δηλώσετε και να τα αρχικοποιήσετε.

Δήλωση

Για να δηλώσετε έναν δείκτη, καθορίζετε τον τύπο δεδομένων στον οποίο δείχνει, ακολουθούμενο από έναν αστερίσκο (*) και μετά το όνομα του δείκτη. Για παράδειγμα:

 int *ptr;

Εδώ, int *ptr δηλώνει ένα δείκτη με όνομα πτρ που μπορεί να αποθηκεύσει τη διεύθυνση μνήμης ενός ακέραιου αριθμού.

Αρχικοποίηση

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

 int x = 5; 
int *ptr = &x;

Σε αυτή τη δήλωση, το & Ο τελεστής ανακτά τη διεύθυνση της μεταβλητής x. Ο κώδικας λέει ουσιαστικά 'Το ptr είναι μια μεταβλητή, αποθηκεύει τη θέση μνήμης μιας ακέραιας τιμής και αυτή η θέση είναι όπου αναφέρεται το x αυτήν τη στιγμή.'

Τώρα, πτρ κρατά τη διεύθυνση της ακέραιας μεταβλητής Χ . Για παράδειγμα:

Χ

εφαρμογή ομιλίας σε κείμενο για το android

1000

5

πτρ

----

1000