Δημοσιεύτηκε: 09 Φεβ 2012, 04:49
οκ εδω
Αν ο str υπάρχει τοτε δίνει 1 άρα !1 = 0 άρα δεν εκτελεί το return 0;
και εκτελεί απευθείας την puts πρόσεξε ομως.... αν βγάλω το return 0; ακριβως κατω απο την if και βαλω
printf("%s" , str); μου το εκτυπώνει κανονικα
γιατι? αλλα δεν εκτυπώνει μετα το puts!!!!!!!!!! Περιεργα πραγματα .
Επισης αν ο δείκτης δεν υπάρχει το αποτελεσμα ειναι 0 έτσι? Νομιζω ειχες πει παλαιοτερα αλλωστε πως το NULL ειναι μια
σταθερά ορισμένη στο 0.
Γενικα πολυ ωραιο παραδειγματάκι και μου ξαναθύμισε τις strlen() , strcpy() τα ξεσκονισα παλι αυτα
αλλα δεν καταλαβαινω εφοσον με προκαθορισμένο string καλείς την συνάρτηση ποιος ο λογος να βάζεις τοσους ελέγχους?
αφου δεν δίνει ο χρήστης κάποια είσοδο ωστε να υποθέσεις πως κάτι θα πάει στραβά εκτος και αν βάζεις τοσο έλεγχο μηπως
εσωτερικά στο συστημα πάει κατι στραβα? και αν ναι ποση πιθανοτητα δινεις σε αυτο? anyway .
Oυσιαστικά εκείνο που κάνεις ειναι να περνάς μια source συμβολοσειρά.... μετα να καταχωρείς χώρο οσο ειναι αυτή
σε έναν δείκτη προς συμβολοσειρά ret και τέλος επιστρέφεις το αποτέλεσμα της strcpy που είναι ένας δείκτης προς την νέα ret στην οποία
αντιγράφηκε ολη η source... αυτο αποθηκεύεται στον str σαν τιμή επιστροφής και τελικά εκτυπώνεται μεσω της puts.
ΠΟλυ ωραιο! Kαι έξυπνο να χρησιμοποιήσεις σαν τιμή επιστροφής μια συνάρτηση που επιστρέφει ουτως η άλλως δείκτη
lol ρε συ εγω δεν έχω τέτοια εμπειρία ακομη που μου λες οτι φτιάχνω αχρείαστα παραδείγματα!!!! ΠΟυ να μου κοβε να το κάνω αυτο
για αυτο παιδευόμουν παρολαυτα δεν ανησυχώ αν συνεχίσω να ασχολουμαι με C θα γινω δυναμίτης στο άμεσο μελλον........
ναι........ ε σε καμια 50αρια χρόνια δηλαδη αχαχαχαχαχαχαχα !
- Κώδικας: Επιλογή όλων
if ( !str )
return 0;
puts( str );
Αν ο str υπάρχει τοτε δίνει 1 άρα !1 = 0 άρα δεν εκτελεί το return 0;
και εκτελεί απευθείας την puts πρόσεξε ομως.... αν βγάλω το return 0; ακριβως κατω απο την if και βαλω
printf("%s" , str); μου το εκτυπώνει κανονικα
Επισης αν ο δείκτης δεν υπάρχει το αποτελεσμα ειναι 0 έτσι? Νομιζω ειχες πει παλαιοτερα αλλωστε πως το NULL ειναι μια
σταθερά ορισμένη στο 0.
Γενικα πολυ ωραιο παραδειγματάκι και μου ξαναθύμισε τις strlen() , strcpy() τα ξεσκονισα παλι αυτα
αλλα δεν καταλαβαινω εφοσον με προκαθορισμένο string καλείς την συνάρτηση ποιος ο λογος να βάζεις τοσους ελέγχους?
αφου δεν δίνει ο χρήστης κάποια είσοδο ωστε να υποθέσεις πως κάτι θα πάει στραβά εκτος και αν βάζεις τοσο έλεγχο μηπως
εσωτερικά στο συστημα πάει κατι στραβα? και αν ναι ποση πιθανοτητα δινεις σε αυτο? anyway .
Oυσιαστικά εκείνο που κάνεις ειναι να περνάς μια source συμβολοσειρά.... μετα να καταχωρείς χώρο οσο ειναι αυτή
σε έναν δείκτη προς συμβολοσειρά ret και τέλος επιστρέφεις το αποτέλεσμα της strcpy που είναι ένας δείκτης προς την νέα ret στην οποία
αντιγράφηκε ολη η source... αυτο αποθηκεύεται στον str σαν τιμή επιστροφής και τελικά εκτυπώνεται μεσω της puts.
ΠΟλυ ωραιο! Kαι έξυπνο να χρησιμοποιήσεις σαν τιμή επιστροφής μια συνάρτηση που επιστρέφει ουτως η άλλως δείκτη
lol ρε συ εγω δεν έχω τέτοια εμπειρία ακομη που μου λες οτι φτιάχνω αχρείαστα παραδείγματα!!!! ΠΟυ να μου κοβε να το κάνω αυτο
για αυτο παιδευόμουν παρολαυτα δεν ανησυχώ αν συνεχίσω να ασχολουμαι με C θα γινω δυναμίτης στο άμεσο μελλον........
ναι........ ε σε καμια 50αρια χρόνια δηλαδη αχαχαχαχαχαχαχα !