Δημοσιεύτηκε: 30 Αύγ 2011, 20:05
από migf1
Star_Light έγραψε:
migf1 έγραψε:
...
και το μονο που μενει τωρα ειναι.... το return save δηλαδη επιστρέφουμε στην main την διεύθυνση της συμβολοσειράς s1?
Και ετσι δεν εκτυπωνει την διευθυνση της συμβολοσειρας ας πουμε? Πως απο μια επιστρεφομενη διευθυνση παμε μετα στον τελεστη διευθυνσιοδοτησης οπου τελικα μας δειχνει τα περιεχομενα? εκει σκαλωνω.....
Θα το καταλαβαινα αμεσως αν ειχαμε πχ στην main μια printf("%s",*save);
:/
...

Εδώ παρατηρώ πως έχεις γενικό κενό, με τα strings γενικότερα... το %s περιμένει string, δηλαδή πίνακα από χαρακτήρες, δηλαδή δείκτη στον 1ο χαρακτήρα ενός string, ενώ το %c περιμένει απλό χαρακτήρα, δηλαδή το περιεχόμενο του δείκτη save στο δικό μας παράδειγμα (δηλαδή τον χαρακτήρα *save, που είναι ο 1ος χαρακτήρας του string) .
Αυτό που γράφεις παραπάνω το κάνεις συνέχεια λάθος :(... εφόσον το save είναι δείκτης σε χαρακτήρα το *save είναι απλός χαρακτήρας.

Ή θα πρέπει λοιπόν να γράψεις:
Κώδικας: Επιλογή όλων
printf("%s", save)

ή
Κώδικας: Επιλογή όλων
printf("%c", *save);

Τα...
Κώδικας: Επιλογή όλων

printf("%s", *save);
printf("%c", save);
είναι και τα 2 λάθος!

Ακριβώς όπως είναι λάθος και τα παρακάτω:
Κώδικας: Επιλογή όλων

char s[] = "this is a test";
printf("%s", *s);
printf("%c", s);
ΛΑΘΟΣ!!!!

Το σωστό είναι:
Κώδικας: Επιλογή όλων

char s[] = "this is a test";
printf("%s", s); // τυπώνει: this is a test
printf("%c", *s); // τυπώνει: t


Ελπίζω να ξεκαθάρισαν, αν όχι πες μου να τα ξανα δούμε :)

Καλή διασκέδαση στη βολτίτσα!