Δημοσιεύτηκε: 23 Ιουν 2011, 23:50
ΜΙας και διαβαζω πολυ προσεκτικα το τουτοριαλ του migf1 βρηκα ενα λαθάκι εκ παραδρομης... \
Εδω ειναι nums[4] μιας και αναφερομαστε στο 4ο στοιχειο ξεκινωντας τον πινακα απο το μηδενικο στοιχειο και δεικτη θεσης πινακα nums[0].
- Κώδικας: Επιλογή όλων
Pointer Arithmetic (Αριθμητική Δεικτών)
Μιας και τα arrays καταλαμβάνουν συνεχόμενη μνήμη, μπορούμε με απλές αριθμητικές πράξεις να πηγαίνουμε τον pointer p σε όποιο στοιχείο του nums θέλουμε, και το *p να είναι ο ακέραιος που περιέχει αυτό το στοιχείο του nums :)
Για να πάμε δηλαδή τον p στο 5ο στοιχείο του nums, αρκεί απλά να προσθέσουμε τον αριθμό 4 στο p (4 και όχι 5, γιατί ο p βρίσκεται ήδη στο 1ο στοιχείο του nums). Γράφοντας λοιπόν...
Κώδικας: Επιλογή όλων
p += 4; // ισοδυναμεί με: p = p + 4;
μετακινούμε τον p 4 θέσεις προς τα δεξιά, και ουσιαστικά δείχνει πλέον τη διεύθυνση μνήμης στην οποία είναι αποθηκευμένο το 5ο στοιχείο του array nums. Άρα το *p συμβολίζει πλέον τον ακέραιο που περιέχει το [b] nums[5], [/b] δηλαδή τον αριθμό 50.
Εδω ειναι nums[4] μιας και αναφερομαστε στο 4ο στοιχειο ξεκινωντας τον πινακα απο το μηδενικο στοιχειο και δεικτη θεσης πινακα nums[0].