Δημοσιεύτηκε: 16 Σεπ 2011, 14:58
Α, σε ότι αφορά την ερώτηση που τους έκανες σχετικά με το πέρασμα του array στην bubble-sort, να στο πω κι εγώ στα Ελληνικά που σου είναι πιο κατανοητά.
Όταν περνάς πίνακες σε συναρτήσεις, τότε περνιέται by value ο δείκτης με το όνομα του πίνακα, που περιέχει τη διεύθυνση του 1ου στοιχείου του πίνακα. Αυτό λοιπόν είναι σαν να περνάς by reference το 1ο στοιχείο του πίνακα: arr == &arr[0] και άρα *arr == arr[0]
Όταν μέσα στη συνάρτηση γράφεις π.χ. arr[i] ο δείκτης μετακινείται στο i-οστό στοιχείο του πίνακα, και εξακολουθεί να συμπεριφέρεται σαν να επεξεργάζεσαι by refrenece το i-οστό στοιχείο του πίνακα.
Που όλο μαζί σημαίνει, πως επεξεργάζεσαι by reference όλα τα στοιχεία του πίνακα, αλλά ο δείκτης αυτός κάθε αυτός έχει περαστεί by value.
Από την άλλη, αν θέλεις να επεξεργαστείς μέσα σε μια συνάρτηση σαν by reference έναν δείκτη, θα πρέπει να περάσεις στη συνάρτηση τη διεύθυνση του δείκτη (δηλαδή δείκτη σε δείκτη)... αλλά αυτό αν δεν έχεις καταλάβει πρώτα το παραπάνω δεν πρόκειται να το καταλάβεις. Πρώτα πρέπει να καταλάβεις τα απλά στάδια πριν επιχειρήσεις να ασχοληθείς με πιο προχωρημένα.
Όταν περνάς πίνακες σε συναρτήσεις, τότε περνιέται by value ο δείκτης με το όνομα του πίνακα, που περιέχει τη διεύθυνση του 1ου στοιχείου του πίνακα. Αυτό λοιπόν είναι σαν να περνάς by reference το 1ο στοιχείο του πίνακα: arr == &arr[0] και άρα *arr == arr[0]
Όταν μέσα στη συνάρτηση γράφεις π.χ. arr[i] ο δείκτης μετακινείται στο i-οστό στοιχείο του πίνακα, και εξακολουθεί να συμπεριφέρεται σαν να επεξεργάζεσαι by refrenece το i-οστό στοιχείο του πίνακα.
Που όλο μαζί σημαίνει, πως επεξεργάζεσαι by reference όλα τα στοιχεία του πίνακα, αλλά ο δείκτης αυτός κάθε αυτός έχει περαστεί by value.
Από την άλλη, αν θέλεις να επεξεργαστείς μέσα σε μια συνάρτηση σαν by reference έναν δείκτη, θα πρέπει να περάσεις στη συνάρτηση τη διεύθυνση του δείκτη (δηλαδή δείκτη σε δείκτη)... αλλά αυτό αν δεν έχεις καταλάβει πρώτα το παραπάνω δεν πρόκειται να το καταλάβεις. Πρώτα πρέπει να καταλάβεις τα απλά στάδια πριν επιχειρήσεις να ασχοληθείς με πιο προχωρημένα.