Όταν σε ένα υποπρόγραμμα έχουμε τυπική παράμετρο π.χ. έναν ακέραιο, κατά την κλήση ΔΕΝ μας ενδιαφέρει εάν η πραγματική παράμετρος είναι απλή μεταβλητή (ακέραιος) ή στοιχείο ενός μονοδιάστατου πίνακα ή στοιχείο ενός δισδιάστατου πίνακα κλπ!
Παράδειγμα στο πρόγραμμα που επισυνάπτω.
(το επισυνάπτω γιατί έχω κάποιο πρόβλημα με τους Ελληνικούς χαρακτήρες στη Γλωσσομάθεια.
Αν έχει κάποιος κάποια ιδέα....)
Στον κώδικα παρατηρούμε ότι στη διαδικασία περνάει σαν όρισμα ένας ακέραιος.
Την διαδικασία ΔΕΝ την ενδιαφέρει εάν ο ακέραιος είναι στοιχείο πίνακα ή απλή μεταβλητή.
Μας ενδιαφέρει εάν είναι ακέραιος!
Οκ, περνάει και η διεύθυνση (ή γίνεται το copy , anyway!), αλλά ο ορισμός της διαδικασίας λέει:
Η παράμετρος (όρισμα) να είναι ακέραια, να αυξηθεί κατά 1, και να "ενημερωθεί" το κυρίως πρόγραμμα.
Όταν πραγματική παράμετρος είναι η Χ που έχει τιμή 5, μετά την κλήση της Δ1 γίνεται 6.
Ομοίως, όταν καλούμε την Δ1 με πραγματική παράμετρο το στοιχείο Ζ[1], του πίνακα Ζ,
το στοιχείο αυξάνεται κατά 1.
Και έχω και τρίτη περίπτωση με 2D array, οπού συμβαίνει ακριβώς το ίδιο.
Άρα, η Δ1 ΔΕΝ "γνωρίζει" και δεν την "ενδιαφέρει" εάν το όρισμα είναι απλή μεταβλητή ή στοιχείο πίνακα.
Δηλ. ΔΕΝ περνάει ο πίνακας Ζ, ας πούμε base address ή κάτι άλλο.
Βέβαια είναι πολύ ενδιαφέρον να γνώριζα ΠΩΣ γίνεται το pass by reference στη ΓΛΩΣΣΑ, γιατί δεν το έχω καταλάβει.