ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C  Το θέμα επιλύθηκε

...ασύγχρονα μαθήματα γλώσσας C

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό migf1 » 23 Σεπ 2011, 15:23

Star_Light έγραψε:
migf1 έγραψε:Μα αφού το έχουμε εξηγήσει στο άλλο νήμα καμιά ντουζίνα φορές πως η C δεν υποστηρίζει κλήσεις με αναφορά (by reference), και ότι την "προσομοιώνουμε" χρησιμοποιώντας δείκτες!

Δεν νομίζω να υπάρχει ούτε ένα βιβλίο που να γράφει πως η C υποστηρίζει κλήσεις με αναφορά, διότι πολύ απλά ΔΕΝ υποστηρίζει.


ναι φιλε μου migf1 το θεμα μου ειναι στην διατυπωση δεν ειπε κανεις
πως δεν καταλαβα τι μου ελεγες. Ετσι οπως το γραφουν υπαρχει προβλημα στην διατυπωση

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

Το πιθανότερο είναι πως τώρα που ξέρεις πως δεν την υποστηρίζει, αν ξαναδιαβάσεις τα βιβλία που είχες διαβάσει θα διαπιστώσεις πως κι εκείνα μια χαρά τα λένε!

ΥΓ. Πάντως φαίνεται σαν να μη μας πιστεύεις τόσους ανθρώπους που σου το έχουμε πει και να ψάχνεις να βρεις βιβλίο που να λέει το αντίθετο :lol:
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό migf1 » 23 Σεπ 2011, 15:28

linuxs έγραψε:Κοιτα, βασικά επειδή η C είναι η "κύρια" γλώσσα μου όταν ακούω αναφορές, pointers, διευθύνσεις είναι στο ίδιο τσουβάλι μια μένα! ;) Απλά έτσι τα σκέφτομαι και στο μάθημα αρχές γλωσσών προγραμματισμού που υπήρχε αναφορά ήταν βελάκια απο μια θέση μνήμης σε άλλη ουσιαστικά "Pointers"

Οι γλώσσες που υποστηρίζουν εγγενώς πέρασμα παραμέτρων με αναφορά δεν σε υποχρεώνουν να χρησιμοποιήσεις pointers για αυτή τη δουλειά.

Στην Pascal για παράδειγμα όταν θες να περάσεις μια παράμετρο με αναφορά, απλά της βάζεις ένα: var μπροστά από τη δήλωσή της στη λίστα παραμέτρων της συνάρτησης και that's it!
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό linuxs » 23 Σεπ 2011, 15:38

Pascal δεν έχω κάνει απο θέμα κώδικα αλλα σε pascal το πέρασμα παραμέτρων γίνεται με "Pointers"! Υπάρχει λόγος που έβαλα " "
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό Star_Light » 23 Σεπ 2011, 15:44

migf1

Σελ. 480 Η διοχετευση μεσω αναφορας ειναι ο μονος τροπος διοχετευσης μιας διαταξης σε μια συναρτηση. Η διοχετευση μεσω τιμης δεν ειναι δυνατη. Με τους αλλους τυπους δεδομενων ομως μπορειτε να χρησιμοποιησετε μια απο τις 2 μεθοδους

Δεν ειπα πουθενα οτι δεν πιστευω εσενα ή τοσα ατομα σε αυτα που μου λες. Αλλα ακριβως η παραπανω διατυπωση ειναι παραπλανητικη για εναν αρχαριο χρηστη συμφωνα με την προσωπικη μου αποψη. Δεν ξεκαθαριζει σε καμια περιπτωση και δεν λεει Π Ο Υ Θ Ε Ν Α οτι ξερετε κατι ρε μαγκες αναφορα δεν υπαρχει εδω μεσα απλα την προσομοιωνεις μεσω δεικτων. Λοιπον αυτο δεν το λεει εκτος και αν ειμαι τρελος.
Τελευταία επεξεργασία από Star_Light και 23 Σεπ 2011, 15:51, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό migf1 » 23 Σεπ 2011, 15:48

linuxs έγραψε:Pascal δεν έχω κάνει απο θέμα κώδικα αλλα σε pascal το πέρασμα παραμέτρων γίνεται με "Pointers"! Υπάρχει λόγος που έβαλα " "

Θα τον μοιραστείς τον λόγο; :lol:

Πάντως στην Pascal το πέρασμα παραμέτρων δεν γίνεται με pointers... γίνεται ή by value, ή by reference. Το ότι σε όλες τις γλώσσες το by reference πέρασμα παραμέτρων μετατρέπεται εσωτερικά από τον compiler σε pointer, δεν σημαίνει πως το πέρασμα παραμέτρων γενικώς γίνεται με pointers. Καθώς επίσης, το γεγονός ότι η Pascal υποστηρίζει κι αυτή pointers, τους οποίους μπορείς να τους περάσεις κατά βούληση είτε by value είτε by reference στις συναρτήσεις, ούτε αυτό σημαίνει πως το πέρασμα παραμέτρων γενικώς γίνεται με pointers στη Pascal.

Δεν μπορώ να σκεφτώ κάποιον άλλο πιθανό λόγο για τον οποίον γράφεις πως " σε pascal το πέρασμα παραμέτρων γίνεται με "Pointers"... σε επίπεδο συγγραφής κώδικα της γλώσσας πάντως, δεν ισχύει κάτι τέτοιο ;)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό Star_Light » 23 Σεπ 2011, 15:51

migf1 έγραψε:
linuxs έγραψε:Pascal δεν έχω κάνει απο θέμα κώδικα αλλα σε pascal το πέρασμα παραμέτρων γίνεται με "Pointers"! Υπάρχει λόγος που έβαλα " "

Θα τον μοιραστείς τον λόγο; :lol:

Πάντως στην Pascal το πέρασμα παραμέτρων δεν γίνεται με pointers... γίνεται ή by value, ή by reference. Το ότι σε όλες τις γλώσσες το by reference πέρασμα παραμέτρων μετατρέπεται εσωτερικά από τον compiler σε pointer, δεν σημαίνει πως το πέρασμα παραμέτρων γενικώς γίνεται με pointers. Καθώς επίσης, το γεγονός ότι η Pascal υποστηρίζει κι αυτή pointers, τους οποίους μπορείς να τους περάσεις κατά βούληση είτε by value είτε by reference στις συναρτήσεις, ούτε αυτό σημαίνει πως το πέρασμα παραμέτρων γενικώς γίνεται με pointers στη Pascal.

Δεν μπορώ να σκεφτώ κάποιον άλλο πιθανό λόγο για τον οποίον γράφεις πως " σε pascal το πέρασμα παραμέτρων γίνεται με "Pointers"... σε επίπεδο συγγραφής κώδικα της γλώσσας πάντως, δεν ισχύει κάτι τέτοιο ;)


αυτα που λες δεν τα γραφει κανενα βιβλιο ρε φιλε!!!! Τελοςπαντων.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό migf1 » 23 Σεπ 2011, 15:52

Star_Light έγραψε:migf1

Σελ. 480 Η διοχετευση μεσω αναφορας ειναι ο μονος τροπος διοχετευσης μιας διαταξης σε μια συναρτηση. Η διοχετευση μεσω τιμης δεν ειναι δυνατη. Με τους αλλους τυπους δεδομενων ομως μπορειτε να χρησιμοποιησετε μια απο τις 2 μεθοδους

Δεν ειπα πουθενα οτι δεν πιστευω εσενα ή τοσα ατομα σε αυτα που μου λες. Αλλα ακριβως η παραπανω διατυπωση ειναι παραπλανητικη για εναν αρχαριο χρηστη συμφωνα με την προσωπικη μου αποψη. Δεν ξεκαθαριζει σε καμια περιπτωση και δεν λεει Π Ο Υ Θ Ε Ν Α οτι ξερετε κατι ρε μαγκες αναφορα δεν υπαρχει εδω μεσα απλα την προσομειωνεις μεσω δεικτων. Λοιπον αυτο δεν το λεει εκτος και αν ειμαι τρελος.

Απομονωμένο το απόσπασμα δεν μπορεί να κριθεί. Το πιθανότερο είναι να έχει ήδη εξηγήσει πρωτύτερα πως η C δεν υποστηρίζει κλήσεις με αναφορά και απλά να το αναφέρει έτσι παρακάτω χάριν συντομίας. Είναι κι αυτός ένας από τους πολλούς λόγος που τα βιβλία πρέπει να διαβάζονται με τη σειρά από την αρχή προς το τελος τους :lol:

ΥΓ. Από ποιο βιβλίο είναι αυτό το απόσπασμα;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό migf1 » 23 Σεπ 2011, 15:54

Star_Light έγραψε:αυτα που λες δεν τα γραφει κανενα βιβλιο ρε φιλε!!!! Τελοςπαντων.

Τα βιβλία από τα οποία διδάχτηκα εγώ Pascal και C μια χαρά τα έγραφαν όμως :P
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό Star_Light » 23 Σεπ 2011, 15:59

migf1 έγραψε:Απομονωμένο το απόσπασμα δεν μπορεί να κριθεί. Το πιθανότερο είναι να έχει ήδη εξηγήσει πρωτύτερα πως η C δεν υποστηρίζει κλήσεις με αναφορά και απλά να το αναφέρει έτσι παρακάτω χάριν συντομίας. Είναι κι αυτός ένας από τους πολλούς λόγος που τα βιβλία πρέπει να διαβάζονται με τη σειρά από την αρχή προς το τελος τους :lol:

ΥΓ. Από ποιο βιβλίο είναι αυτό το απόσπασμα;


Και ομως φιλε μου!!!! Σου λεω χτενισα το βιβλιο χθες βραδυ... το θεμα εχει λυθει εδω και καιρο οπως και ο ιδιος ειπες
αλλα χθες που ανοιξα λιγο το βιβλιο επεσα πανω σε αυτο και δεν γινοταν να μην το σχολιασω.

Φυσικα το βιβλιο ειναι αυτο

http://www.greekbooks.gr/books/ilektron ... -c.product

σελιδα 480 τελευταια παραγραφος (συνεχιζεται και στην διπλανη σελιδα) πουθενα πρωτυτερα δεν εχει τονισει αυτο που λες παρα συνεχιζει το βιολι του εξηγωντας πως ενα αποτελεσμα αντιγραφεται στον σωρό προσωρινα.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό migf1 » 23 Σεπ 2011, 16:06

Star_Light έγραψε:Και ομως φιλε μου!!!! Σου λεω χτενισα το βιβλιο χθες βραδυ... το θεμα εχει λυθει εδω και καιρο οπως και ο ιδιος ειπες
αλλα χθες που ανοιξα λιγο το βιβλιο επεσα πανω σε αυτο και δεν γινοταν να μην το σχολιασω.

Φυσικα το βιβλιο ειναι αυτο

http://www.greekbooks.gr/books/ilektron ... -c.product

σελιδα 480 τελευταια παραγραφος (συνεχιζεται και στην διπλανη σελιδα) πουθενα πρωτυτερα δεν εχει τονισει αυτο που λες παρα συνεχιζει το βιολι του εξηγωντας πως ενα αποτελεσμα αντιγραφεται στον σωρό προσωρινα.

Μου φαίνεται αδιανόητο να μην αναφέρει πως η C δεν υποστηρίζει εγγενώς κλήσεις με αναφορά. Δηλαδή στο κεφάλαιο που πρωτο-μιλάει για συναρτήσεις δεν αναφέρει πως το πέρασμα παραμέτρων γίνεται πάντα by value, και ότι για by reference χρησιμοποιούμε δείκτες;
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Μαθήματα C