Τι είναι ο Διαχειριστής Dereference;

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

Για παράδειγμα, στο C, μπορούμε να δηλώσουμε μια μεταβλητή x που κρατά μια ακέραια τιμή και μια μεταβλητή p που κρατάει ένα δείκτη σε μια ακέραια τιμή στη μνήμη:

 int x; int * p; 

Εδώ, ο αστερίσκος λέει στον μεταγλωττιστή, "το p δεν είναι ακέραιος, αλλά ένας δείκτης σε μια θέση στη μνήμη που κρατά έναν ακέραιο αριθμό". Εδώ, δεν είναι μια αποδυνάμωση, αλλά μέρος μιας δήλωσης δείκτη.

Τώρα μπορούμε να ορίσουμε το p στην τοποθεσία που έχει διατεθεί για την τιμή του x χρησιμοποιώντας τον χειριστή &, που σημαίνει "διεύθυνση του."

 p = & χ. 

Αυτή η ενέργεια λέει στον μεταγλωττιστή, "Η διεύθυνση στη μνήμη που δείχνει p είναι η διεύθυνση που έχετε αντιστοιχίσει για τον ακέραιο x ".

Για να απεικονίσουμε, αν ορίσουμε την τιμή του x προς 1 χρησιμοποιώντας τη συμβατική μέθοδο και εκτυπώσουμε την τιμή, η έξοδος θα είναι 1 .

 x = 1. printf ("% d", x); 

Ωστόσο, μπορούμε επίσης να αλλάξουμε την τιμή του x με την αναφορά p . Κάνουμε αυτό με έναν αστερίσκο:

 * ρ = 2. printf ("% d", x); 

Και η έξοδος αλλάζει σε 2 .

Με άλλα λόγια, αφού το p έχει δηλωθεί ως δείκτης του ίδιου τύπου με το x και στη συνέχεια έχει οριστεί να δείχνει την τιμή του x, μπορούμε να χρησιμοποιήσουμε εναλλακτικά x και * p . Δεδομένου ότι και οι δύο αναφέρονται στο ίδιο πράγμα, η αλλαγή της τιμής ενός θα αλλάξει την τιμή του άλλου.

Δείκτης, Προγραμματιστικοί όροι, Μεταβλητή