Εμφάνιση 1-8 από 8
  1. #1
    Εγγραφή
    12-09-2007
    Μηνύματα
    10
    Downloads
    3
    Uploads
    0
    Καλημερα φιλοι μου, θελω μια βοηθεια σχετικα με c++ που κανουμε στο τει.Μας εκαναν μαθημα στους δεικτες (pointers), εχω καταλαβει οτι δειχνουν σε μια θεση μνημης μιας μεταβλητης και ξερω να τους χρησιμοποιω οσον αφορα την δηλωση τους ,την εκτυπωση στην οθονη της θεσης μνημης οπως και της ιδιας της τιμης της μεταβλητης που αντιπροσωπευουν.Ομως δεν καταλαβαινω γιατι να χρησιμοποιω την τιμη μιας μεταβλητης μεσω δεικτη και οχι απευθειας απο την ιδια της μεταβλητη ?. Ποια η ουσιαστικη χρησιμοτητα τους ?.

  2. #2
    Εγγραφή
    25-10-2003
    Περιοχή
    marousi
    Ηλικία
    44
    Μηνύματα
    433
    Downloads
    5
    Uploads
    0
    Ταχύτητα
    13000/950
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - ΜΑΡΟΥΣΙ
    Router
    TP-limk-kati + Netgear
    Με μια κουβέντα γιατί στη C τα πάντα (οι σύναρτήσεις καθώς δρουν πάνω σε ματαβλητες) γίνονται μέσω κλίσης με αναφορά μνήμης και όχι τιμής στοιχείου. Κινέζικο μπορεί να σου ακούγεται αλλά είναι πρωί ακόμα. (Googlare call by value vs call by reference)

  3. #3
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Ένας από τους λόγους που χρησιμοποιείς pointers είναι όταν θέλεις να περάσεις σαν παράμετρο σε μια function κάτι μεγάλο, π.χ. ένα struct ή ένα object.

    Εκεί είναι πολύ πιο γρήγορο να περάσεις τη διεύθυνση ενός struct (ένας pointer είναι το πολύ 8 bytes) από ότι να περάσεις ένα αντίγραφο του struct.

  4. #4
    Εγγραφή
    14-02-2006
    Ηλικία
    43
    Μηνύματα
    108
    Downloads
    21
    Uploads
    0
    Ταχύτητα
    6144/1024
    ISP
    HOL
    DSLAM
    HOL - ΠΕΝΤΕΛΗΣ
    Router
    Thomson Speedtouch 585v7
    SNR / Attn
    10(dB) / 47(dB)
    Παράθεση Αρχικό μήνυμα από axxis Εμφάνιση μηνυμάτων
    Ένας από τους λόγους που χρησιμοποιείς pointers είναι όταν θέλεις να περάσεις σαν παράμετρο σε μια function κάτι μεγάλο, π.χ. ένα struct ή ένα object.

    Εκεί είναι πολύ πιο γρήγορο να περάσεις τη διεύθυνση ενός struct (ένας pointer είναι το πολύ 8 bytes) από ότι να περάσεις ένα αντίγραφο του struct.
    Σε γλώσσες που δεν υποστηρίζουν δείκτες π.χ. Java υπάρχει αποδοτικος τρόπος για να περάσουμε παράμετρο σε function??
    "Trying is the first step towards failure." - Homer Simpson -

  5. #5
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Παράθεση Αρχικό μήνυμα από spyronis Εμφάνιση μηνυμάτων
    Σε γλώσσες που δεν υποστηρίζουν δείκτες π.χ. Java υπάρχει αποδοτικος τρόπος για να περάσουμε παράμετρο σε function??
    Στη Java δεν χρειάζεται να κάνεις κάτι. Όταν περνάς ένα object σε παράμετρο, η Java δεν περνάει ολόκληρο το object αλλά ένα κατά κάποιο τρόπο αντίγραφο του pointer που δείχνει στο object.

  6. #6
    Εγγραφή
    04-03-2011
    Μηνύματα
    579
    Downloads
    0
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από spyronis Εμφάνιση μηνυμάτων
    Σε γλώσσες που δεν υποστηρίζουν δείκτες π.χ. Java υπάρχει αποδοτικος τρόπος για να περάσουμε παράμετρο σε function??
    Τέτοιες γλώσσες περνούν συνήθως τα ορίσματα με αναφορά.
    Π.χ. στην fortran όλα περνάνε με αναφορά εκτός αν ρητά δηλωθεί ότι πρέπει να περάσουν με τιμή.
    Έχει δείκτες βέβαια αλλά εκεί χρειάζονται πολύ λιγότερο.
    Π.χ. ο τρόπος να προστευτεί το όρισμα από ακούσια αλλαγή της τιμής του γίνεται με άλλο τρόπο, πολύ πιο εύλογο απ' ότι στην C/C++ :
    δηλώνεις ρητά ότι είναι όρισμα εισόδου ή εξόδου.
    Οι δείκτες γενικά είναι χρήσιμοι όταν πρέπει να χειριστείς μεταβλητές δίχως να ξέρεις το όνομά τους και
    επίσης κατά κόρον στο system programming όπου γίνεται διαχείριση/προσπέλαση της μνήμης και άλλων παρελκόμενων.

  7. #7
    Εγγραφή
    20-11-2006
    Ηλικία
    56
    Μηνύματα
    797
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    14566/1006
    ISP
    HOL
    DSLAM
    HOL - ΑΘΗΝΑ
    Router
    Pirelli (λευκό)
    SNR / Attn
    9(dB) / 15(dB)
    Path Level
    Interleaved
    Μπορείς να ρίξεις μια ματιά σε αυτή την εξαιρετική σελίδα: http://www.newty.de/fpt/index.html.

    Οι πιο συχνές χρήσεις των δεικτών σε C είναι α) για ας την πούμε προσομοίωση του pass-by-reference στα ορίσματα των συναρτήσεων, β) για callbacks (δες για παράδειγμα την τεκμηρίωση της συνάρτησης qsort() ) γ) για υλοποίηση abstract data types ή generic data types (χρήση του void *) δ) encapsulation μέσω incomplete types.

    Xωρίς δείκτες δεν θα μπορούσες να φτιάξεις για παράδειγμα έναν memory viewer/editor (η αριθμητική δεικτών είναι ευλογία σε αυτή την περίπτωση, αλλά οχι μόνο). Ελπίζω το link που σου δίνω να σε βοηθήσει να καταλάβεις τη χρησιμότητα τους.

    Στη C++ είναι μικρότερη η σημασία τους, γιατί η γλώσσα παρέχει high-level λειτουργίες που λείπουν από τη C (όπου αναγκαστικά τις υλοποιείς με δείκτες).

    Ρίξε μια ματιά και στην ίδια ερώτηση με τη δική σου, σε ένα γνωστό ξένο φόρουμ: http://stackoverflow...hy-use-pointers
    Τελευταία επεξεργασία από το μέλος migf1 : 21-01-12 στις 14:49. Αιτία: λάθος παράθεση :lol:

  8. #8
    Εγγραφή
    12-09-2007
    Μηνύματα
    10
    Downloads
    3
    Uploads
    0
    Σας ευχαριστω παιδες , ειστε φοβεροι !!!.

Παρόμοια Θέματα

  1. Εργασια με Pointers!!!!
    Από milos2404 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 13
    Τελευταίο Μήνυμα: 17-05-09, 13:16
  2. C++ Pointers
    Από Atilas στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 34
    Τελευταίο Μήνυμα: 14-05-09, 09:09
  3. Segmentation fault σε C pointers
    Από artem στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 11
    Τελευταίο Μήνυμα: 02-04-08, 23:38
  4. Αποθηκευση πολλων pointers?πως?
    Από razorblade1100 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 22
    Τελευταίο Μήνυμα: 10-08-07, 16:44
  5. Πράξεις με pointers στη Delphi
    Από WAntilles στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 28-04-05, 14:09

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας