Δημοσιεύτηκε: 18 Ιουν 2011, 14:45
Τι ευχαριστείς βρε συ, αφού τα έχουμε πει 
Καταρχήν, ο αλγόρθιμος της s_reverse() αυτό που κάνει είναι να βάζει έναν δείκτη cp1 στην αρχή του string s κι έναν δείκτη cp2 στο τέλος του. Κατόπιν με το for-loop και για όσο ο cp1 είναι μικρότερος του cp2 (μέχρι να συνατηθούν δηλαδή), αυξάνει τον cp1, μειώνει τον cp2 και στην πορεία εναλλάσσει τα περιεχόμενά τους (κάνει swap δηλαδή τους χαρακτήρες στους οποίους δείχνουν αυτοί οι 2 δείκτες σε κάθε επανάληψη του loop). Για αυτό και η ύπαρξη του dummy... για να κρατάει προσωρινά τον χαρακτήρα *cp1 πριν την εναλλαγή, και να τον αναθέτει στον *cp2 στο τέλος της εναλλαγής.
cp1, cp2 είναι οι δείκτες (δηλαδή οι απόλυτες διευθύνεις μνήμης)
*cp1, *cp2 είναι τα περιεχόμενα της μνήμης (δηλαδή οι χαρακτήρες του s στους οποίους δείχνουν κάθε φορά οι cp1, cp2
Δώσε μου λίγο χρόνο να σου κάνω τον κώδικα λίγο πιο βατό στην ανάγνωση.
Καταρχήν, ο αλγόρθιμος της s_reverse() αυτό που κάνει είναι να βάζει έναν δείκτη cp1 στην αρχή του string s κι έναν δείκτη cp2 στο τέλος του. Κατόπιν με το for-loop και για όσο ο cp1 είναι μικρότερος του cp2 (μέχρι να συνατηθούν δηλαδή), αυξάνει τον cp1, μειώνει τον cp2 και στην πορεία εναλλάσσει τα περιεχόμενά τους (κάνει swap δηλαδή τους χαρακτήρες στους οποίους δείχνουν αυτοί οι 2 δείκτες σε κάθε επανάληψη του loop). Για αυτό και η ύπαρξη του dummy... για να κρατάει προσωρινά τον χαρακτήρα *cp1 πριν την εναλλαγή, και να τον αναθέτει στον *cp2 στο τέλος της εναλλαγής.
cp1, cp2 είναι οι δείκτες (δηλαδή οι απόλυτες διευθύνεις μνήμης)
*cp1, *cp2 είναι τα περιεχόμενα της μνήμης (δηλαδή οι χαρακτήρες του s στους οποίους δείχνουν κάθε φορά οι cp1, cp2
Δώσε μου λίγο χρόνο να σου κάνω τον κώδικα λίγο πιο βατό στην ανάγνωση.