ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΣΕ C
ΘΕΩΡΙΑ
ΘΕΩΡΙΑ
2 - 12: Σύνταξη, Τελεστές και Τύποι Δεδομένων,
Κωδικοποίηση Αλγορίθμων και Δομών Δεδομένων,
Πρότυπη Βιβλιοθήκη της C ΠΕΡΙΕΧΟΜΕΝΑ
==> Θεωρία 2 - 12: Σύνταξη, Τελεστές και Τύποι Δεδομένων, Κωδικοποίηση Αλγορίθμων και Δομών Δεδομένων, Πρότυπη Βιβλιοθήκη της C <==
Εργαστήριο 1: Εργαστηριακά Παραδείγματα Προγραμμάτων σε C (1)
Εργαστήριο 2: Εργαστηριακά Παραδείγματα Προγραμμάτων σε C (2)
Εργαστήριο 3: Εργαστηριακά Παραδείγματα Προγραμμάτων σε C (3)
- ΣΗΜΕΙΩΣΕΙΣ
- Διαλέξεις δομημένου προγραμματισμού Η/Υ σε C υπάρχουν εδώ (Πάνος Βασιλειάδης, από http://www.cs.uoi.gr/~cs423/)! Στην οθόνη η οποία θα εμφανιστεί, επιλέξτε «File» («Αρχείο» στα ελληνικά) και στη συνέχεια «Download» («Λήψη» στα ελληνικά).
- ΕΠΙΣΗΜΑΝΣΕΙΣ
- Διαφορές από τη μεταγενέστερη C++:
- Στη C δεν υπάρχουν οι τύποι δεδομένων bool και String, ούτε οι δεσμευμένες λέξεις κλειδιά 'true' και 'false'. Η λογική αλήθεια συμβολίζεται με οποιονδήποτε θετικό ακέραιο αριθμό, ενώ το λογικό ψεύδος με την αριθμητική τιμή 0.
- Στη C δεν υπάρχουν οι τελεστές new και delete (new[] και delete[] για πίνακες). Αντ' αυτών είναι διαθέσιμες μόνον οι συναρτήσεις malloc() και free().
- Η C δεν υποστηρίζει πρότυπα (templates).
- Η C δεν υποστηρίζει υπερφόρτωση τελεστών.
- Η C δεν υποστηρίζει τη βιβλιοθήκη έτοιμων δομών δεδομένων STL.
- Στη C η είσοδος / έξοδος δεδομένων γίνεται αποκλειστικά μέσω των συναρτήσεων της βιβλιοθήκης stdio.h [printf(), scanf(), fprintf(), fscanf(), puts(), fputs(), putc(), fputc(), getchar() κλπ], ενώ στη C++ συνήθως μέσω της βιβλιοθήκης iostream (cout, cin κλπ).
- Στη C είναι απαραίτητη η προσθήκη της δεσμευμένης λέξης-κλειδί 'struct' αμέσως πριν από κάθε δήλωση στιγμιοτύπου μίας δομής.
- Η C έχει μικρότερη σε μέγεθος και υπολογιστικές απαιτήσεις πρότυπη βιβλιοθήκη. Τα μεγάλα προγράμματα σε C συνήθως είναι ελαφρώς ταχύτερα και μεταγλωττίζονται ελαφρώς γρηγορότερα από αντίστοιχης κλίμακας προγράμματα σε C++.
- Η C είναι αποκλειστικά γλώσσα διαδικαστικού και δομημένου προγραμματισμού, χωρίς φυσικά καμία υποστήριξη αντικειμενοστρέφειας (κλάσεις, αντικείμενα, κληρονομικότητα, πολυμορφισμός, υποσκέλιση συναρτήσεων, υπερφόρτωση συναρτήσεων, διασυνδέσεις κλπ).
- Στη C ένα αλφαριθμητικό μπορεί να αποθηκευτεί μόνο σε μονοδιάστατο πίνακα τύπου char (πίνακας χαρακτήρων) και τερματίζεται με τον ειδικό χαρακτήρα '\0' (ΟΧΙ '\n'), ο οποίος καταλαμβάνει μία θέση στον πίνακα.
- Στη C το όνομα ενός πίνακα είναι δείκτης προς το πρώτο στοιχείο του ο οποίος δεν δύναται να αλλάξει τιμή. Eπομένως ο τύπος δεδομένων char[] ισοδυναμεί με τον const char*.
- Στη C ο χειρισμός των αλφαριθμητικών (αντιγραφή, συνένωση, σύγκριση κλπ) γίνεται με τις συναρτήσεις της βιβλιοθήκης string.h [strcmp(), strcpy(), strcat(), strncat(), strncmp() κλπ], και ΟΧΙ με συνηθισμένους τελεστές οι οποίοι επενεργούν σε μεταβλητές βασικών τύπων δεδομένων (+, =, != κλπ).
- Κάθε τύπος δεδομένων μπορεί να καταλαμβάνει διαφορετικό πλήθος byte, αναλόγως με την αρχιτεκτονική του υπολογιστή όπου εκτελείται το πρόγραμμα. Από το πόσα byte καταλαμβάνει κάθε μεταβλητή του εν λόγω τύπου όταν αποθηκεύεται στη μνήμη, εξαρτάται το εύρος τιμών που μπορούν να λάβουν οι μεταβλητές αυτού του τύπου κατά τον χρόνο εκτέλεσης.
- Σε συνηθισμένα PC με επεξεργαστές των 32-bit, ισχύουν τα εξής:
Τύπος Byte Bit Εύρος τιμών |
short int 2 16 -32,768 -> +32,767 unsigned short int 2 16 0 -> +65,535 unsigned int 4 16 0 -> +4,294,967,295 int 4 32 -2,147,483,648 -> +2,147,483,647 long int 4 32 -2,147,483,648 -> +2,147,483,647 signed char 1 8 -128 -> +127 unsigned char 1 8 0 -> +255 float 4 32 double 8 64 long double 12 96 |
- Προτεραιότητα τελεστών.
- Κανόνες αυτόματης ανάθεσης τύπου.
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
Αφήστε το σχόλιό σας για την τρέχουσα ανάρτηση: