Δημοσιεύτηκε: 02 Σεπ 2011, 00:32
stamatiou έγραψε:το if(!*s1++) ελέγχει το παρόν s1 αν είναι '\0' και το αυξάνει κατά ένα, το ίδιο θα μπορούσαμε φαντάζομαι να κάνουμε και στο while αντί για το if....
Ναι σωστα μολις τωρα ημουν ετοιμος να το γραψω... ουσιαστικα το
- Κώδικας: Επιλογή όλων
if(!*s1++)
λεει πως άν δεν υπάρξει s1 δείκτης (δεν ξερω αν το εκφραζω και σωστα) αν δηλαδη πλεον ενω αυξανεται φτασει σε ενα σημειο να δειξει στο '\0' τελος συμβολοσειρας δηλαδη τοτε επεστρεψε τιμη 0.
Απο οσο λεει ο migf1 αν ειναι ανομοιοι οι δυο δεικτες η συνάρτηση επιστρέφει αρνητικη τιμή αν καταλαβα καλα?
EDIT: Λαθος... αρνητικη επιστρεφει αν ο 1ος ειναι μεγαλυτερος απο τον δευτερο.... αν για παραδειγμα αφαιρεσω τον χαρακτηρα 'A' απο τον 'C'
τοτε ειναι
- Κώδικας: Επιλογή όλων
putchar(65) - putchar(68) = A-D = 65 - 68 = -3
και φυσικα αυτο το οποιο επιστρεφει το κάνει αριθμητικη τιμη δηλαδη int μεσω του μετατροπεα (int )
επιστρεφει πχ οτι οι χαρακτήρες απέχουν κατα n μεταξυ τους.... αν n ειναι το αποτελεσμα της αφαίρεσης.
ενταξει τα βάλαμε τα σχολια αρα την τελειωσαμε την ασκηση