Μετάβαση στο περιεχόμενο

Δείκτης (πληροφορική): Διαφορά μεταξύ των αναθεωρήσεων

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ r2.7.1) (Ρομπότ: Προσθήκη: et:Viit (informaatika)
εμπλουτισμός από αγγλικό + σχήμα + παραπομπές (επεξεργασία με το ProveIt)
Γραμμή 1: Γραμμή 1:
[[Εικόνα:Pointers.svg|thumb|right|230px|Ένας δείκτης (ο '''a''') δείχνει μια διεύθυνση μνήμης η οποία αναφέρεται (περιέχει) σε μια μεταβλητή '''b'''. Στο παραπάνω διάγραμμα χρησιμοποιείται ο ίδιος χώρος διευθύνσεων για δείκτες και μη-δείκτες, κάτι το οποίο δεν συμβαίνει πάντα.]]
Στην [[πληροφορική]], ο '''δείκτης''' (αγγλ. ''Pointer'') είναι [[τύπος δεδομένων]] του οποίου η τιμή είναι η [[διεύθυνση μνήμης]] που περιέχει κάποιο άλλο δεδομένο. Στις περισσότερες [[Γλώσσα υψηλού επιπέδου|γλώσσες υψηλού επιπέδου]] οι δείκτες χρησιμοποιούνται σπανίως διότι αυτές παρέχουν άλλους μηχανισμούς που κάνουν περιττή την χρήση δεικτών. Στις γλώσσες υψηλού επιπέδου που χρησιμοποιούνται οι δείκτες, παίζουν ουσιαστικά τον ρόλο [[καταχωρητής|καταχωρητών γενικού σκοπού]] των [[Γλώσσα χαμηλού επιπέδου|γλωσσών χαμηλού επιπέδου]] όπως είναι η [[συμβολική γλώσσα]] και η [[γλώσσα μηχανής]].

Στην [[πληροφορική]], ο '''δείκτης''' (αγγλ. ''Pointer'') είναι [[τύπος δεδομένων]] του οποίου η τιμή είναι η [[διεύθυνση μνήμης]] που περιέχει κάποιο άλλο δεδομένο. Ονομάζεται δείκτης γιατί είναι μια μεταβλητή η οποία "δείχνει" την διεύθυνση μνήμης μιας άλλης μεταβλητής. Για την πρόσβαση στην τιμή της διεύθυνση μνήμης που περιέχει ο δείκτης (την μεταβλητή που δείχνει η διεύθυνση) χρησιμοποιείται ''ο τελεστής έμμεσης αναφοράς'' (dereferencing operator). Για την πρόσβαση στην διεύθυνση μνήμης που δείχνει ο δείκτης χρησιμοποιείται ''το τελεστής διεύθυνση'' (address operator). <ref name="softlab_programmatistikes_texnikes">{{cite web | url=http://courses.softlab.ntua.gr/progtech/ | title=Προγραμματιστικές Τεχνικές: [http://courses.softlab.ntua.gr/progtech/Lectures/lecture-5.ppt Δείκτες, Πίνακες και Δείκτες, Δείκτες σε Συναρτήσεις] | accessdate=2011-10-03 | author=Α-Γ. Σταφυλοπάτης, Κ. Κοντογιάννης, Γ. Μαΐστρος | publisher=Εργαστήριο Λογισμικού Εθνικού Μετσόβιου Πολυτεχνείου}}</ref>

Δείκτες σε δεδομένα μπορούν να αυξήσουν την απόδοση σε βρόγχους επανάληψης, όπως για παράδειγμα σε βρόγχο πρόσβασης σε χαρακτήρες [[Συμβολοσειρά|συμβολοσειρών]] ή βρόγχους σε πίνακες αναφοράς (lookup tables) ή βρόγχους διάσχισης δενδρικών δομών (tree structures). Σε συγκεκριμένες περιπτώσεις, είναι αποδοτικότερο από πλευράς χρήσης μνήμης και χρόνου να αντιγραφεί ένα δείκτης και στην συνέχεια να χρησιμοποιηθεί ο τελεστής έμμεσης αναφοράς από το να αντιγραφούν τα δεδομένα (ιδιαίτερα στην περίπτωση ογκωδών δομών δεδομένων) στα οποία ο δείκτης αναφέρεται.
Οι δείκτες χρησιμοποιούνται για να αποθηκεύουν τις διευθύνσεις υπορουτίνων στον διαδικαστικό προγραμματισμό και η χρήση αυτών κατά την διάρκεια εκτέλεσης των προγραμμάτων χρησιμοποιώντας βιβλιοθήκες δυναμικής σύνδεσης (dynamic link libraries - DLLs). Στον αντικειμενοστραφή προγραμματισμό οι δείκτες σε συναρτήσεις χρησιμοποιούνται στην διασύνδεση μεθόδων (binding methods).

Στις περισσότερες [[Γλώσσα υψηλού επιπέδου|γλώσσες υψηλού επιπέδου]] οι δείκτες χρησιμοποιούνται σπανίως διότι αυτές παρέχουν άλλους μηχανισμούς που κάνουν περιττή την χρήση δεικτών. Στις γλώσσες υψηλού επιπέδου που χρησιμοποιούνται οι δείκτες, παίζουν ουσιαστικά τον ρόλο [[καταχωρητής|καταχωρητών γενικού σκοπού]] των [[Γλώσσα χαμηλού επιπέδου|γλωσσών χαμηλού επιπέδου]] όπως είναι η [[συμβολική γλώσσα]] και η [[γλώσσα μηχανής]]. Επειδή οι δείκτες επιτρέπουν την κατευθείαν πρόσβαση σε θέση μνήμης, η χρήση αυτών στον προγραμματισμό δημιουργεί ρίσκα με την λάθος χρήση αυτών.

== Παραπομπές==
{{παραπομπές}}


{{Τύποι δεδομένων}}
{{Τύποι δεδομένων}}
Γραμμή 5: Γραμμή 16:
{{πληροφορική-επέκταση}}
{{πληροφορική-επέκταση}}


{{ενσωμάτωση κειμένου|en|Pointer (computing)}}
[[Κατηγορία:Επιστήμη υπολογιστών]]
[[Κατηγορία:Επιστήμη υπολογιστών]]
[[Κατηγορία:Γλώσσες προγραμματισμού]]
[[Κατηγορία:Γλώσσες προγραμματισμού]]

Έκδοση από την 07:01, 3 Οκτωβρίου 2011

Ένας δείκτης (ο a) δείχνει μια διεύθυνση μνήμης η οποία αναφέρεται (περιέχει) σε μια μεταβλητή b. Στο παραπάνω διάγραμμα χρησιμοποιείται ο ίδιος χώρος διευθύνσεων για δείκτες και μη-δείκτες, κάτι το οποίο δεν συμβαίνει πάντα.

Στην πληροφορική, ο δείκτης (αγγλ. Pointer) είναι τύπος δεδομένων του οποίου η τιμή είναι η διεύθυνση μνήμης που περιέχει κάποιο άλλο δεδομένο. Ονομάζεται δείκτης γιατί είναι μια μεταβλητή η οποία "δείχνει" την διεύθυνση μνήμης μιας άλλης μεταβλητής. Για την πρόσβαση στην τιμή της διεύθυνση μνήμης που περιέχει ο δείκτης (την μεταβλητή που δείχνει η διεύθυνση) χρησιμοποιείται ο τελεστής έμμεσης αναφοράς (dereferencing operator). Για την πρόσβαση στην διεύθυνση μνήμης που δείχνει ο δείκτης χρησιμοποιείται το τελεστής διεύθυνση (address operator). [1]

Δείκτες σε δεδομένα μπορούν να αυξήσουν την απόδοση σε βρόγχους επανάληψης, όπως για παράδειγμα σε βρόγχο πρόσβασης σε χαρακτήρες συμβολοσειρών ή βρόγχους σε πίνακες αναφοράς (lookup tables) ή βρόγχους διάσχισης δενδρικών δομών (tree structures). Σε συγκεκριμένες περιπτώσεις, είναι αποδοτικότερο από πλευράς χρήσης μνήμης και χρόνου να αντιγραφεί ένα δείκτης και στην συνέχεια να χρησιμοποιηθεί ο τελεστής έμμεσης αναφοράς από το να αντιγραφούν τα δεδομένα (ιδιαίτερα στην περίπτωση ογκωδών δομών δεδομένων) στα οποία ο δείκτης αναφέρεται.

Οι δείκτες χρησιμοποιούνται για να αποθηκεύουν τις διευθύνσεις υπορουτίνων στον διαδικαστικό προγραμματισμό και η χρήση αυτών κατά την διάρκεια εκτέλεσης των προγραμμάτων χρησιμοποιώντας βιβλιοθήκες δυναμικής σύνδεσης (dynamic link libraries - DLLs). Στον αντικειμενοστραφή προγραμματισμό οι δείκτες σε συναρτήσεις χρησιμοποιούνται στην διασύνδεση μεθόδων (binding methods).

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

Παραπομπές

  1. Α-Γ. Σταφυλοπάτης, Κ. Κοντογιάννης, Γ. Μαΐστρος. «Προγραμματιστικές Τεχνικές: [http://courses.softlab.ntua.gr/progtech/Lectures/lecture-5.ppt Δείκτες, Πίνακες και Δείκτες, Δείκτες σε Συναρτήσεις]». Εργαστήριο Λογισμικού Εθνικού Μετσόβιου Πολυτεχνείου. Ανακτήθηκε στις 3 Οκτωβρίου 2011.  Εξωτερικός σύνδεσμος στο |title= (βοήθεια)CS1 maint: Πολλαπλές ονομασίες: authors list (link)