Τι είναι η Διεύθυνση Μνήμης στη C++ και πώς να την βρείτε;

Ti Einai E Dieuthynse Mnemes Ste C Kai Pos Na Ten Breite



Στη C++, μια διεύθυνση της μνήμης είναι η θέση μιας μεταβλητής στη μνήμη RAM όπου αποθηκεύονται τα δεδομένα. Η μνήμη RAM (Random Access Memory) είναι ένα είδος μνήμης υπολογιστή που μπορεί να διαβαστεί καθώς και να τροποποιηθεί με οποιαδήποτε σειρά και χρησιμοποιείται συχνά για την αποθήκευση δεδομένων λειτουργίας και κωδικών μηχανής. Στα προγράμματά μας, κάθε μεταβλητή αποθηκεύεται στη μνήμη RAM και καταλαμβάνει χώρο στη μνήμη. Αυτές οι μεταβλητές έχουν μια συγκεκριμένη θέση μνήμης και καθεμία από αυτές έχει μια διεύθυνση που μπορεί να ανακτηθεί μέσω του τελεστής συμπλεκτικού (&). . Αυτός ο τελεστής αντιπροσωπεύει τη διεύθυνση μνήμης μιας μεταβλητής και είναι χρήσιμος για την πρόσβαση και το χειρισμό των δεδομένων που είναι αποθηκευμένα σε αυτήν τη θέση.

Αυτό το άρθρο παρέχει έναν οδηγό για την εύρεση της διεύθυνσης μνήμης μιας μεταβλητής στη C++.

Πώς να προσδιορίσετε τη διεύθυνση μνήμης μιας μεταβλητής στη C++

Στη C++, υπάρχουν δύο μέθοδοι για τον προσδιορισμό της διεύθυνσης μνήμης μιας μεταβλητής:







Μέθοδος 1: Βρείτε τη διεύθυνση μνήμης της μεταβλητής χρησιμοποιώντας «διεύθυνση» και χειριστή

Όταν απαιτείται να προσδιορίσουμε τη διεύθυνση μνήμης μιας μεταβλητής, μπορούμε να χρησιμοποιήσουμε το «διεύθυνση χειριστή» (&) , το οποίο επιστρέφει τη διεύθυνση της μεταβλητής. Για να εμφανίσετε τη διεύθυνση μιας μεταβλητής, χρησιμοποιήστε '&' μαζί με το όνομα της μεταβλητής.



Ας χρησιμοποιήσουμε ένα παράδειγμα προγράμματος για να το δείξουμε:



#include

χρησιμοποιώντας το namespace std ;

ενθ κύριος ( )

{

ενθ num1 ;

φλοτέρ num2 ;

string str ;

cout << 'Πληκτρολογήστε μια ακέραια τιμή για να βρείτε τη διεύθυνση μνήμης του: ' ;

τρώει >> num1 ;

cout << 'Ο αριθμός που εισήχθη είναι:' << num1 << endl ;

cout << 'Διεύθυνση' << num1 << ' είναι: ' <<& num1 << endl ;

cout << 'Παρακαλώ εισάγετε μια δεκαδική τιμή για να βρείτε τη διεύθυνση μνήμης του: ' ;

τρώει >> num2 ;

cout << 'Ο αριθμός που εισήχθη είναι:' << num2 << endl ;

cout << 'Διεύθυνση' << num2 << ' είναι :' <<& num2 << endl ;

cout << 'Παρακαλώ εισάγετε μια συμβολοσειρά για να βρείτε τη διεύθυνση μνήμης της: ' ;

τρώει >> str ;

Για ( ενθ Εγώ = 0 ; Εγώ < str. μήκος ( ) ; ++ Εγώ )

cout << 'Διεύθυνση' << str [ Εγώ ] << ' είναι :' << ( κενός * ) & str [ Εγώ ] << endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Οι ετικέτες μεταβλητών μας στο παραπάνω πρόγραμμα είναι num1, num2 και str, με τύπους δεδομένων int, float και string, αντίστοιχα. Ο τελεστής '&' χρησιμοποιείται με το όνομα της μεταβλητής για να βρει τη διεύθυνση μνήμης της. Θα πρέπει να σημειωθεί ότι η έξοδος που παρέχει τη διεύθυνση της μεταβλητής είναι ένας τυχαία δημιουργημένος αριθμός.





Μέθοδος 2: Βρείτε τη διεύθυνση μνήμης μιας μεταβλητής χρησιμοποιώντας έναν δείκτη

Στη C++, οι διευθύνσεις μεταβλητών μπορούν επίσης να ληφθούν χρησιμοποιώντας δείκτες. Μια μεταβλητή που περιέχει τη διεύθυνση μιας άλλης μεταβλητής αναφέρεται ως δείκτης. Ένας δείκτης εξυπηρετεί όπως κάθε άλλη μεταβλητή που πρέπει να καθοριστεί για να μπορέσει να χρησιμοποιηθεί. Ένας δείκτης ορίζεται στη C++ με το '*' τελεστής, μερικές φορές γνωστός ως τελεστής αστερίσκου.



Ας δούμε ένα παράδειγμα προγράμματος για να βρείτε τη διεύθυνση μνήμης χρησιμοποιώντας δείκτη:

#include

#include

χρησιμοποιώντας το namespace std ;

ενθ κύριος ( ) {

ενθ num1 ;

ενθ * ptr_num1 = & num1 ;

φλοτέρ num2 ;

φλοτέρ * ptr_num2 = & num2 ;

string str ;

cout << 'Πληκτρολογήστε μια ακέραια τιμή για να βρείτε τη διεύθυνση μνήμης του: ' ;

τρώει >> num1 ;

cout << 'Ο αριθμός που εισήχθη είναι:' << num1 << endl ;

cout << 'Διεύθυνση' << num1 << ' είναι: ' << ptr_num1 << endl ;

cout << 'Παρακαλώ εισάγετε μια δεκαδική τιμή για να βρείτε τη διεύθυνση μνήμης του: ' ;

τρώει >> num2 ;

cout << 'Ο αριθμός που εισήχθη είναι:' << num2 << endl ;

cout << 'Διεύθυνση' << num2 << ' είναι: ' << ptr_num2 << endl ;

cout << 'Παρακαλώ εισάγετε μια συμβολοσειρά για να βρείτε τη διεύθυνση μνήμης της: ' ;

τρώει >> str ;

Για ( ενθ Εγώ = 0 ; Εγώ < str. μήκος ( ) ; Εγώ ++ ) {

cout << 'Διεύθυνση' << str [ Εγώ ] << ' είναι: ' << ( κενός * ) & str [ Εγώ ] << endl ;

}

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Οι ετικέτες μεταβλητών σε αυτό το πρόγραμμα είναι num1, num2 και str, με τύπους δεδομένων int, float και string, αντίστοιχα. Η διεύθυνση της μεταβλητής προσδιορίζεται χρησιμοποιώντας τον δείκτη μαζί με το όνομα της μεταβλητής. Θα πρέπει να σημειωθεί ότι η έξοδος που παρέχει τη διεύθυνση της μεταβλητής είναι ένας τυχαία δημιουργημένος αριθμός.

συμπέρασμα

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