Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

θελω να φτιαξω ενα προγραμμα που αρχικα να ζηταει απο το χρηστη να δωσει τα στοιχεια μια λιστα ακεραιων...πως το κανω????? με εχουν μπερδεψει αρκετα οι λιστες και η υλοποιηση τους....

Δημοσ.

στην c φιλε δεν τον εχω αρχισει καν......



μου ζηταω να φτιαξω ενα προγραμμα που αρχικα θα ζηταει απο το χρηστη να δωσει τα στοιχεια μιας λιστας ακεραιων....

Δημοσ.

πρεπει να φτιαξω πρωτα την λιστα??απο σημειωσεις απλα με μπερδευουν αρκετα οι λιστες....

Δημοσ.

Ίσως σε βοηθήσουν οι Ελληνικές σημειώσεις μου, που τις έχω δημοσιεύσει στο link της υπογραφής μου. Αν και όπως είπαν και τα άλλα παιδιά, δεν υπάρχει πηγή για C programming που να μην εξηγεί ακριβώς αυτό που ζητάς.

Δημοσ.

Ίσως σε βοηθήσουν οι Ελληνικές σημειώσεις μου, που τις έχω δημοσιεύσει στο link της υπογραφής μου. Αν και όπως είπαν και τα άλλα παιδιά, δεν υπάρχει πηγή για C programming που να μην εξηγεί ακριβώς αυτό που ζητάς.

Άσχετο αλλά κοιτούσα τις σημειώσεις σου και είδα αυτό:

 ...
 unsigned long long naddr;  /* ορισμός μεταβλητής τύπου unsigned long long με το όνομα naddr */
 ...
 /* τύπωμα της μεταβλητής naddr ως unsigned long long int */
 printf("The physical memory address of n is %llu\n", (unsigned long long) naddr);

Υπάρχει λόγος που κάνεις το cast μέσα στην printf;

  • Like 1
Δημοσ. (επεξεργασμένο)

@eto

Αν δεν σου αρέσουν οι σημειώσεις που έχεις, απλά άλλαξε σημειώσεις. Υπάρχουν άπειρες στο ίντερνετ. Πάντως ξεκίνα διαβάζοντας τις, κάνοντας τα παραδείγματα που έχουν, ξεκίνα να κάνεις την άσκηση σου και όταν έχεις συγκεκριμένες απορίες ρωτάς και στο φόρουμ (αφού κάνεις αναζήτηση στο ίντερνετ). Έτοιμη απάντηση, χωρίς εσύ να γράψεις καθόλου κώδικα δεν πρόκειται να βρεις.

 

ps. Καλό θεωρείται και το βιβλίο "C Programming: A modern approach" του King.

Επεξ/σία από pmav99
Δημοσ.

 

Άσχετο αλλά κοιτούσα τις σημειώσεις σου και είδα αυτό:

 ...
 unsigned long long naddr;  /* ορισμός μεταβλητής τύπου unsigned long long με το όνομα naddr */
 ...
 /* τύπωμα της μεταβλητής naddr ως unsigned long long int */
 printf("The physical memory address of n is %llu\n", (unsigned long long) naddr);
Υπάρχει λόγος που κάνεις το cast μέσα στην printf;

 

 

 

Καλημέρα, δεν χρειάζεται αυτό το casting. Ευχαριστώ για την επισήμανση, το διόρθωσα.

 

Ένα καλύτερο σημείο για αυτό το casting θα ήταν στην προηγούμενη γραμμή...

 

naddr = (unsigned long long) &n;
 

το οποίο όμως και αυτόματα γίνεται (implicitly) αλλά και δεν σε γλιτώνει και από την παραγωγή του σχετικού warning (με την προϋπόθεση πως τα έχεις ενεργοποιημένα και σε strict-mode).

 

Στη συγκεκριμένη περίπτωση το παραγόμενο warning μπορείς με ασφάλεια να το αγνοήσεις, αλλά το παράγει ο compiler επειδή σύμφωνα με το πρότυπο το &n ισοδυναμεί με pointer ενώ το naddr είναι απλή μεταβλητή.

 

Απλώς σε εκείνο το σημείο των σημειώσεων δεν έχω αναφερθεί ακόμα σε pointers, οπότε το κάνω επίτηδες έτσι χαρακτηρίζοντας το ως μη ενδεδειγμένο. Στην αμέσως επόμενη σελίδα των σημειώσεων ξαναγράφω τον κώδικα με χρήση δείκτη, που είναι ο ενδεδειγμένος τρόπος για αυτές τις δουλειές (και το αναλύω).

 

ΥΓ. Ενδέχεται να μου έχουν ξεφύγει κι άλλα μέσα στις σημειώσεις.

 

 

 

... 

ps. Καλό θεωρείται και το βιβλίο "C A modern approach" του King.

 

Η 2η έκδοση όμως. Ο πλήρης τίτλος είναι: "C Programming a Modern Approach - 2nd Edition".

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...