Σε αυτό το άρθρο, θα βρείτε σχετικά παραδείγματα που θα σας βοηθήσουν να συνεργαστείτε με δείκτες για πρόσβαση σε δεδομένα σε μια δομή.
Μπορεί να δημιουργηθεί μια μεταβλητή δείκτης όχι μόνο για την εγγενή τύπους αρέσει ( int
, float
, double
κ.λπ.), αλλά μπορούν επίσης να δημιουργηθούν για το χρήστη ορίζεται τύπους σαν δομή.
Εάν δεν γνωρίζετε τι είναι οι δείκτες, επισκεφτείτε τους δείκτες C ++.
Δείτε πώς μπορείτε να δημιουργήσετε δείκτη για δομές:
#include using namespace std; struct temp ( int i; float f; ); int main() ( temp *ptr; return 0; )
Αυτό το πρόγραμμα δημιουργεί ένα δείκτη ptr του τύπου δομής temp.
Παράδειγμα: Δείκτες προς δομή
#include using namespace std; struct Distance ( int feet; float inch; ); int main() ( Distance *ptr, d; ptr = &d; cout <> (*ptr).feet; cout <> (*ptr).inch; cout << "Displaying information." << endl; cout << "Distance = " << (*ptr).feet << " feet " << (*ptr).inch << " inches"; return 0; )
Παραγωγή
Εισαγωγή ποδιών: 4 Εισαγωγή ίντσας: 3.5 Εμφάνιση πληροφοριών. Απόσταση = 4 πόδια 3,5 ίντσες
Σε αυτό το πρόγραμμα, καθορίζεται μια μεταβλητή δείκτη ptr και η κανονική μεταβλητή d της δομής τύπου Απόσταση.
Η διεύθυνση της μεταβλητής d αποθηκεύεται στη μεταβλητή δείκτη, δηλαδή, το ptr δείχνει τη μεταβλητή d. Στη συνέχεια, προσπελάζεται η συνάρτηση μέλους της μεταβλητής d χρησιμοποιώντας δείκτη.
Σημείωση: Δεδομένου ότι ο δείκτης ptr δείχνει τη μεταβλητή d σε αυτό το πρόγραμμα (*ptr).inch
και d.inch
είναι ακριβώς το ίδιο κελί. Ομοίως, (*ptr).feet
και d.feet
είναι ακριβώς το ίδιο κελί.
Η σύνταξη για πρόσβαση στη λειτουργία μέλους χρησιμοποιώντας δείκτη είναι άσχημη και υπάρχει εναλλακτική σημείωση -> η οποία είναι πιο κοινή.
ptr-> πόδια είναι ίδια με (* ptr). πόδια ptr-> ίντσα είναι ίδια με (* ptr) .inch